gpt4 book ai didi

您能否从等待的互斥量中的不同互斥量发出条件变量信号?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:39 24 4
gpt4 key购买 nike

例如,在伪代码中:

lock mutex1
pthread_cond_wait(condition, mutex1)
unlock mutex1

...来自另一个线程:

lock mutex2
pthread_cond_signal(condition)
unlock mutex2

调用线程是否必须锁定正在等待的同一个互斥量?在我看来,这会限制条件变量的使用,当您同时运行许多线程并希望相互通信时。

最佳答案

mutex2 与您的示例无关,您最好不要在通知程序中保留任何互斥量。

文档说:

pthread_cond_signal() may be called by a thread whether or not it currently owns the mutex that threads calling pthread_cond_wait() have associated with the condition variable during their waits; however, if predictable scheduling behavior is required, then that mutex shall be locked by the thread calling pthread_cond_broadcast() or pthread_cond_signal().

听起来您不需要任何特定的唤醒调度行为,所以是的,您可以在根本不持有任何互斥量的情况下或在持有不相关的互斥量时向条件变量发出信号。

关于您能否从等待的互斥量中的不同互斥量发出条件变量信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57842147/

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