进程,线程同步方式中条件变量和信号量有什么区别吗?

2018-05-12 21:58:37 +08:00
 jssyxzy

感觉没什么区别。

3000 次点击
所在节点    程序员
2 条回复
jimzhong
2018-05-12 22:59:23 +08:00
使用 mutex 和 condition 可以模拟 semaphore.
vegito2002
2018-05-12 23:05:54 +08:00
条件变量本身一般就是用信号量实现的. 反过来用条件变量实现信号量也可以, 不过那个是搞着玩的.
Linux 的信号量好像还可以维护等待人的数量, 条件变量我记得好像是不可以?
严格来说条件变量能做的都能用信号量来做, 不过麻烦一些. 锁和条件变量实际上是信号量的两种不同的高层抽象, 让使用更方便一些, 其实就是对应初始值分别是 1 和 0 的信号量.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/454367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX