是否在等待可调节变量的线程被等待之前发出的信号唤醒

时间:2019-05-09 16:05:33

标签: c multithreading pthreads conditional

是否有机会让等待条件变量t的线程cond被另一个线程t'唤醒(其中t'可能实际上是{{1} })在t等待之前发信号?

我曾尝试制作一个可以执行此操作1000次的C程序,但是它从未发生过,我也已经阅读了有关信号的手册页并等待,但是我找不到答案。

这是一个单线程情况的示例

t

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

  

等待条件变量的线程能否在等待之前被发出的信号唤醒。

不能。但是,它可能会被spurious wakeup唤醒,并且不会知道其中的区别。

等待代码必须等待共享状态的更改,条件变量唤醒提示共享状态可能已更改,必须重新评估。

答案 1 :(得分:1)

不。如果没有其他线程正在等待,...signal(&cond)函数将什么也不做。