1ice的并发情形下线程安全问题?


ice中间件常见配置说明_java

         多线程意味着,来自客户的多个调用可以在服务器中并发执行。事实上,在同一个servant中,以及在同一servant 的同一个操作中,都可以有多个请求在并行执行。因此,如果在操作实现中,涉及到对非栈存储的操纵(比如servant的成员变量、全局变量,或静态变量),你必须对数据访问进行互锁,以防止数据损坏。

        

1.1: 如何确定线程池大小依据?

ice中间件常见配置说明_java_02



1.2: 内部调用至少使用2个线程

ice中间件常见配置说明_java_03

配置:

ice中间件常见配置说明_java_04



动态配置:

name.Size=3

name.SizeMax=5

name.ThreadIdleTime=10

 

ice中间件常见配置说明_java_05

2:同步和异步问题?

同步编程模型:发出调用的线程会阻塞到操作返回。每个客户占有一个线程。

异步编程模型:

Client

 异步方法调用(AMI):使用AMI发出远地调用,在Icerun time等待答复的同时,发出调用的线程不会阻塞。相反,发出调用的线程可以继续进行各种活动,当答复最终到达时,Ice run time会通知应用。通知是通过回调发给应用提供的编程语言对象的。

Server

 异步方法分派(AMD):使用AMD时,服务器可以接收一个请求,然后挂起其处理,以尽快释放分派线程。当处理恢复、结果已得出时,服务器要使用Ice run time提供的回调对象,显式地发送响应。

3onewaytwoway和双向和单向的关系

 

ice中间件常见配置说明_java_06

onewaytwoway是一种代理模式

单向和双向针对连接来说的。