您的位置:首页 > 大数据 > 人工智能

pthread_cond_wait pthread_cond_broadcast pthread_mutex_lock

2008-03-06 14:17 441 查看
wait的时候会释放锁,从wait返回的时候会再次要求锁,如果不能得到锁,线程就不回被wake up,所以broadcast时的处理逻辑如下:
1.所有线程被唤醒(或者是一个随机的线程),但只有一个线程能获取到锁,该线程醒来处理事务,或者再次wait或者处理完后unlock
2.上个线程unlock或者wait后,锁被释放,另外的一个线程获取到锁,开始同样的操作
3.这里注意的是任何一个线程醒来要么wait,要么unlock,无论如何一定要把lock释放掉,否则其他线程得不到锁不能wake up
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: