gpt4 book ai didi

linux - 第一个线程退出后调度哪个线程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:28 26 4
gpt4 key购买 nike

void main()
{
.....
pthread_mutex_init(&lock)
pthread_create(fun,...)
pthread_create(fun,...)
pthread_create(fun,...)
}

void fun()
{
pthread_mutex_lock(&lock)
...........
pthread_mutex_unlock(&lock)
}

在上面的代码中,我创建了 3 个调用相同函数 fun 的线程。我可以告诉你,执行 fun 比创建线程要花更长的时间。所以最初有3个线程。但是第一个线程在锁定后已经在执行。现在第二个和第三个线程正在等待。我的问题是一旦锁被释放,将安排哪个线程。它是第 2 个线程然后是第 3 个线程还是取决于调度程序。调度程序是否为等待线程维护任何类型的队列并以 FIFO 方式对其进行调度?

最佳答案

不,它不像 FIFO 那样工作。随机唤醒一个线程。

关于linux - 第一个线程退出后调度哪个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313042/

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