C - Pthread_cond_signal - 信号最长等待线程

时间:2016-10-24 05:46:20

标签: multithreading synchronization pthreads

在pthread库中,是否有一种简单的方法可以指定首先唤醒哪个线程的条件,如果多个线程正在等待相同的条件变量?

例如,假设我有3个线程正在等待一个条件变量,当我调用pthread_cond_signal时,我想唤醒先等待的线程(换句话说,已经等待最长时间的线程)

有没有简单的方法来实现这一目标?从我在代码中看到的内容来看,pthread_cond_signal只是发出一个正在等待的线程,没有特定的顺序。

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,这应该用票证锁来完成。 https://en.wikipedia.org/wiki/Ticket_lock

示例可能看起来像那样

{{1}}