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是一種代理模式 單向和雙向針對連接來說的。

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