没有while循环的pthread_cond_wait

3
global variable 'temp';

**threadA**   
    -pthread_mutex_lock-  
            if (temp == 'x')  
                    -pthread_cond_wait-
                    do this     
        -pthread_mutex_unlock-      

**threadB**  
    -pthread_mutex_lock-  
            if (someCondition == true)            
                        temp = 'x'  
                -pthread_cond_signal-  
    -pthread_mutex_unlock-

在我的情况下,可能没有任何循环,只有一个if条件。因此,当temp =='x'时,我希望threadA应该执行那个/这个。

  • 处理pthread_cond_wait时,循环是必须的吗?
  • 如果我们不需要循环,写代码的另一种方式是什么?
  • 这是编写代码的正确方式吗?
1个回答

8

1
“pthread_cond_timedwait()”或“pthread_cond_wait()”函数可能会出现虚假唤醒。这是否意味着唤醒可能会在没有任何原因的情况下自动发生? - Aquarius_Girl
2
是的,这就是标准所说的 - 特定实现可能选择实施更严格的语义。 - cmeerw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接