【发布时间】:2016-12-12 19:13:45
【问题描述】:
在 Pthreads 中,如果一个条件变量被发出信号并且没有线程阻塞在 pthread_cond_wait() 上,那么这个信号就会丢失。
当您在 Windows 中使用 SetEvent() 发出事件信号时,此事件将保持信号状态,直到另一个线程等待此事件对象。
使用WakeConditionVariable() 发出信号的 CONDITIONAL_VARIABLE 遵循上述哪些行为?
【问题讨论】:
-
没关系,因为intended usage pattern是在等待之前验证条件。如果条件变量在没有服务员的情况下被唤醒,那么下一个服务员会验证条件,看是否满足,从不首先调用
SleepConditionVariable。
标签: windows multithreading winapi