【问题标题】:pthread_cond_wait and pthread_cond_signalpthread_cond_wait 和 pthread_cond_signal
【发布时间】:2022-02-03 08:44:29
【问题描述】:

我对这两个功能有疑问: 当pthread_cond_signalpthread_cond_wait 之前调用时,信号到底在哪里结束?在某种队列中然后等待直到调用 pthread_cond_wait ?

我没有找到关于这件事的解释。

【问题讨论】:

    标签: c linux pthreads


    【解决方案1】:

    条件变量信号是edge events。这意味着,如果您在没有人等待的情况下发出 CV 信号,则该事件将被丢弃。这在official spec for pthread_cond_signal 中有详细说明:

    如果当前没有线程阻塞在 cond 上,pthread_cond_broadcast() 和 pthread_cond_signal() 函数将无效

    (强调我的)

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 2015-08-18
      • 1970-01-01
      相关资源
      最近更新 更多