【问题标题】:what if cond is signaled at the same time as timeout for pthread_cond_timedwait()如果在 pthread_cond_timedwait() 超时的同时发出 cond 信号怎么办?
【发布时间】:2014-07-14 12:56:09
【问题描述】:

在 pthreads 中,如果条件变量 'cond' 发出信号并且pthread_cond_timedwait() 的超时同时发生怎么办?

pthread 标准是否定义了行为?

条件变量是线程库特有的行为吗?

【问题讨论】:

    标签: multithreading thread-safety pthreads race-condition condition-variable


    【解决方案1】:

    从字面上看,“同时”可能是不可能的,并且将取决于硬件。您是否真的关心实现是否将超时优先于信号,即观察信号然后检查超时是否也发生,然后即使它首先观察到信号也对超时采取行动? (或相反亦然)。当时间很关键并且中断处理的优先级很重要时,实时嵌入式系统中可能会出现问题(诸如用于 PIC 的 CCS 等编译器有指令为此目的操纵 ISR 管理),但在大多数 Unix 的非实时内核中是,这个问题应该是无关紧要的,你要问的是你的应用程序的健壮性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      相关资源
      最近更新 更多