【发布时间】:2020-01-10 12:29:18
【问题描述】:
例如,在伪代码中:
lock mutex1
pthread_cond_wait(condition, mutex1)
unlock mutex1
...来自另一个线程:
lock mutex2
pthread_cond_signal(condition)
unlock mutex2
调用线程是否必须对正在等待的同一个互斥锁进行锁定?在我看来,这会限制条件变量的使用,当您有许多线程同时运行并希望相互通信时。
【问题讨论】:
-
您认为这将如何限制它?是因为有额外的时间来锁定/解锁互斥锁吗? Linux 上的 Cv 实现通常会有一个内部互斥体,正是因为它必须支持通常在关键部分之外的信号。
-
@StaceyGirl 我是多线程的初学者,所以我真的不知道。
标签: c pthreads mutex condition-variable