是否有机会让等待条件变量t
的线程cond
被另一个线程t'
唤醒(其中t'
可能实际上是{{1} })在t
等待之前发信号?
我曾尝试制作一个可以执行此操作1000次的C程序,但是它从未发生过,我也已经阅读了有关信号的手册页并等待,但是我找不到答案。
这是一个单线程情况的示例
t
感谢您的帮助!
答案 0 :(得分:3)
等待条件变量的线程能否在等待之前被发出的信号唤醒。
不能。但是,它可能会被spurious wakeup唤醒,并且不会知道其中的区别。
等待代码必须等待共享状态的更改,条件变量唤醒提示共享状态可能已更改,必须重新评估。
答案 1 :(得分:1)
不。如果没有其他线程正在等待,...signal(&cond)
函数将什么也不做。