您的位置:首页 > 运维架构 > Linux

Linux多线程程序中条件变量的改变没有唤醒等待此条件变量改变的线程

2014-06-05 18:52 309 查看
今天在编程时,在线程a中使用 pthread_cond_signal 试图唤醒另一个阻塞在 pthread_cond_wait 处的线程b,但是却发生了死锁。经过gdb调试发现,是因为线程a中pthread_cond_signal改变条件变量的时候线程b还没有阻塞,因此条件变量的改变被忽略。加入sleep延时一段时间再调用pthread_cond_signal,问题得到了解决。因为这个时候线程b已经阻塞了,条件变量的改变被接收。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐