gpt4 book ai didi

c - pthread_cond_wait(&cond_t, &mutex);解锁然后锁定互斥锁?

转载 作者:太空狗 更新时间:2023-10-29 16:20:30 25 4
gpt4 key购买 nike

我正在使用 pthread_cond_wait(&cond_t, &mutex);在我的程序中,我想知道为什么这个函数需要一个互斥变量作为第二个参数。

是否pthread_cond_wait()在开始时解锁互斥锁(开始执行 pthread_cond_wait() ),然后在完成时锁定(就在离开 pthread_cond_wait() 之前)?

最佳答案

当第一个线程调用 pthread_cond_wait(&cond_t, &mutex); 它释放互斥锁并等待条件 cond_t表示完成 mutex可用。

所以当 pthread_cond_signal 在另一个线程中调用,它不会“唤醒”等待的线程。 mutex必须首先解锁,只有这样第一个线程才有机会获得锁,这意味着“成功返回 pthread_cond_wait 后,互斥锁应该已经被锁定并且应该由调用线程拥有。”

关于c - pthread_cond_wait(&cond_t, &mutex);解锁然后锁定互斥锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14924469/

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