gpt4 book ai didi

c - pthread_cond_signal 会通知哪个线程?

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

当线程调用 pthread_cond_signal() 时,Unix 网络编程说 pthread_cond_signal() 只会通知一个线程,因为它不是 pthread_cond_broadcast() 。这意味着没有竞争条件。然而,这本书并没有说明哪个线程会被通知,以及如何通知。该函数是否随机唤醒线程?

最佳答案

Straight from the man :

If more than one thread is blocked on a condition variable, the scheduling policy shall determine the order in which threads are unblocked.

“调度策略”是操作系统决定的顺序。它是下面链接中列出的四个之一,但你真的不知道(至少没有一些令人印象深刻的黑客技术)哪个是“第一个”。这也不重要 - 所有等待条件的线程都应该同样准备好继续 - 否则你会遇到设计问题。

Scheduling policies in Linux Kernel对一些 linux 政策有一些讨论,如果重要的话你可以从那里谷歌。

关于c - pthread_cond_signal 会通知哪个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281906/

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