2
A
回答
2
這不是特別簡單。以下是由Douglas Schmidt撰寫的一篇文章的鏈接(他也主要負責ACE庫),詳細介紹了幾種使用Win32(Vista之前版本)中可用的同步原語在Windows上實現條件變量的方法。該方法包括只使用基本的,一般可用在任何操作系統原語,並討論了方法的各種限制:
底線(結束語):
本文闡述了爲什麼在Win32平臺上開發條件變量很棘手且容易出錯。有幾個微妙的設計力量必須由開發人員解決。總的來說,我們研究的不同實現根據其正確性,效率,公平性和可移植性而有所不同。沒有一個解決方案能夠最佳地提供所有這些品質。
3.4節中的
:SignalObjectsAndWait
解決方案是一個很好的方法,如果公平是最重要的。但是,這種方法並不像其他解決方案那樣高效,也不像便攜式那樣。因此,如果效率或可移植性比公平性更重要,則3.2節中描述的方法可能更合適。當然,最簡單的解決方案是微軟只需在Win32 API中提供條件變量。
注意,開始在Vista中,Windows使用原生API支持條件變量
相關問題
- 1. 如何使用信號量實現條件變量?
- 2. pthreads在Linux中如何實現條件變量?
- 3. 一條線程如何讓條件變量而不是等待條件變量
- 4. 實現信號量,鎖和條件變量
- 5. 針對XP的Winthreads實現CRITICAL_SECTIONs的條件變量
- 6. 如何實現變量行高的jtable
- 7. 是不是條件的rails實例變量
- 8. 如何實現更大的條件?
- 9. Scala的本地懶惰變量是如何實現的?
- 10. 如何在C#中使用前/後置條件和不變量實現Stack類?
- 11. 如何實現一個全局變量?
- 12. 如何在jQuery變量中實現JavaScript?
- 13. PHP如何實現「動態」變量?
- 14. 如何在模板中實現變量?
- 15. PHP靜態變量是如何在內部實現的?
- 16. 在條件變量中實現一個優先級隊列C
- 17. 如何實現java安裝條件
- 18. 如何實現條件獲取?
- 19. 如何實現車把條件標題
- 20. 如何等待任何條件變量?
- 21. 如何定義變量,如果條件
- 22. 條件變量?
- 23. 條件變量
- 24. 如何在RSpec中實現render_views(是一個變量,方法)?
- 25. 如何檢查變量是否在clojure中實現接口?
- 26. 如何解決條件變量wait/notify的競態條件
- 27. 如何實現表苗條
- 28. 如何在現有的Javascript變量中實現CSS sprite背景?
- 29. SSIS中的實現條件
- 30. 方法的條件實現