COM如何確保在多核機器上保持同步,如果您有COM對外處理服務器和COM客戶端彼此依賴,如果你在多核架構上運行它,事情不會受到影響?COM在多核心機器上的多線程體系結構
0
A
回答
2
在你的評論中,你會問如果COM客戶端運行在一個線程和COM服務器上 - 在另一個線程上會發生什麼。這兩個線程駐留在不同的進程中(因爲服務器是out-proc)。
如果您的客戶端使用了一個out-proc COM服務器COM子系統使用RPC(本地RPC)與服務器進行通信。這對客戶端來說是透明的 - 客戶端調用方法,RPC準備一個包含所有參數的字符串,阻塞客戶端線程,將調用傳遞給服務器,服務器處理調用abd返回給客戶端。沒有併發訪問,所以沒有額外的同步問題 - 所有的同步都是自動完成的。
0
由於您的COM服務器不在proc中,因此客戶端和服務器的線程在不同的進程中運行。 Windows中的進程間同步機制適用於核心或處理器,因此COM子系統已經爲您處理任何多核/處理器問題。
如果您的服務器端數據可能在客戶端不知情的情況下發生變化,那麼這對於單CPU /內核也是一個問題 - 您需要使用輪詢(錯誤)或客戶端通知接口來解決此問題(更好)。
相關問題
- 1. 雙核心機器上的多線程?
- 2. 多線程和多核心
- 3. 核心庫的異常體系結構
- 4. 多核心處理器中的線程
- 5. Angular + ASP.Net核心:插件體系結構
- 6. 多核處理器上的多線程
- 7. 多CPU核心中的Java多線程
- 8. 多線程核心數據
- 9. 饋線應用的多線程體系結構
- 10. 多線程 - 線程每個核心
- 11. 使用數據庫的多線程程序的體系結構
- 12. 多線程程序的核心轉儲
- 13. 玩線程體系結構
- 14. Asp核心多個實體關係
- 15. 核心數據對多關係的隨機實體
- 16. 多服務器更新體系結構
- 17. 最快的多線程網絡爬蟲體系結構
- 18. C#2.0使用插件體系結構的多線程
- 19. 核心數據和多線程編程
- 20. java多線程的核心概念
- 21. 殘破的多線程核心數據
- 22. Java多核線程 - 線程未結束
- 23. 多線程核心數據:'主'上下文線程
- 24. Java多線程 - 分配線程到處理器核心
- 25. 核心數據:從多個實體或關係獲取結果
- 26. 在多核處理器上實時操作系統中的多線程調度
- 27. 多核處理器的多線程
- 28. 在task_struct執行當前宏返回的多核心機器上?
- 29. Python中插件體系結構的多處理或多線程處理
- 30. iPhone核心數據和多線程
您會有什麼特別的問題? – sharptooth 2010-06-28 13:23:38
如果CPU A運行COM客戶端的線程A,並且CPU B運行COM服務器的線程A,現在如果它們互相依賴,並且COM服務器更新了客戶端正在處理的某些內容的值,則客戶端將使用錯誤的數據。 – 2010-06-28 13:30:22