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. 方法的条件实现