ICE线程模型

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

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

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

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

配置:

动态配置: name.Size=3 name.SizeMax=5 name.ThreadIdleTime=10

2 同步和异步问题?

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

2.2 异步编程模型:

Client: 异步方法调用(AMI):使用AMI发出远地调用,在Ice run time等待答复的同时,发出调用的线程不会阻塞。相反,发出调用的线程可以继续进行各种活动,当答复最终到达时,Ice run time会通知应用。通知是通过回调发给应用提供的编程语言对象的。 Server: 异步方法分派(AMD):使用AMD时,服务器可以接收一个请求,然后挂起其处理,以尽快释放分派线程。当处理恢复、结果已得出时,服务器要使用Ice run time提供的回调对象,显式地发送响应。

3 oneway、twoway和双向和单向的关系

oneway、twoway是一种代理模式 单向和双向针对连接来说的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章