c******n 发帖数: 4965 | 1 【 以下文字转载自 Java 讨论区 】
发信人: creation (努力自由泳50m/45sec !), 信区: Java
标 题: condional variable thread sync 问题
发信站: BBS 未名空间站 (Sun Aug 1 02:46:45 2010, 美东)
在java 里面notify() notifyAll() 必须是在synchronized block/method 里面, 用同
一个
object ( 的自带lock ) 保护。 但是C 里面conditional var 的mutex 可以分开,
pthread_cond_signal 不需要mutex , 所以pthread_cond_signal 也可以在critical
section 以外, 比如如下code.... 逻辑上将,放到critical section 外, 可能就
是原
来认为可以ready 放signal 的条件已经变化了, 所以signal 是false alarm, 但是多
扔个
signal 也没有什么问题。所以cond_signal() 那出来 |
|