gpt4 book ai didi

multithreading - pthread_cond_wait 没有 while 循环

转载 作者:行者123 更新时间:2023-12-01 10:05:59 24 4
gpt4 key购买 nike

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 时,循环是强制性的吗?
  • 如果我们不需要循环,编写代码的另一种方法是什么?
  • 这是一种正确的代码编写方式吗?

最佳答案

循环是强制性的,因为根据 http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_cond_wait.html :

Spurious wakeups from the pthread_cond_timedwait() or pthread_cond_wait() functions may occur. Since the return from pthread_cond_timedwait() or pthread_cond_wait() does not imply anything about the value of this predicate, the predicate should be re-evaluated upon such return.

关于multithreading - pthread_cond_wait 没有 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10595363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com