第一个线程退出后,哪个线程被调度?

时间:2016-09-04 02:29:49

标签: linux multithreading synchronization

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个线程,调用相同的函数乐趣。我可以告诉你,执行乐趣比创建线程花费的时间长。所以最初有3个主题。但是第一个线程在锁定后已经执行了。现在第二和第三个线程正在等待。我的问题是一旦锁定被释放,哪个线程将被安排。它是第二个线程,然后是第三个或取决于调度程序。调度程序是否为等待的线程维护任何类型的队列并以FIFO方式对其进行调度?

1 个答案:

答案 0 :(得分:0)

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

相关问题