如果没有线程正在等待并且发送了条件信号会发生什么?

Jae*_*ark 3 c++ pthreads

如果所有线程都忙并且主线程已发送线程cond信号会发生什么?

线程池中有1个主线程和3个pthread.3个pthreads处于状态

    pthread_mutex_lock(&sync_mutex);
    pthread_cond_wait(&sync_cond, &sync_mutex);
    pthread_mutex_unlock(&sync_mutex);
Run Code Online (Sandbox Code Playgroud)

主线程已发送信号唤醒线程来处理工作.在这种情况下,如果3个线程已经忙并且下一个信号到达怎么办?

zvr*_*rba 8

没有.信号消失了.

  • 如果您想记录信号的时间/数量,即使还没有等待,也可以使用信号量.信号量有计数,condvars事件等没有. (2认同)