标签: c linux mutex
让我们说有3个线程A,B和C. 和互斥量X
A在X上调用pthread_mutex_lock。
B在X上调用pthread_mutex_lock。
*
C在X上调用pthread_mutex_lock。
在X上调用pthread_mutex_unlock。
**
现在谁能够首先使用共享资源? B还是C? 如果我尝试在*中使用pthread_destroy_mutex会发生什么?在**?
答案 0 :(得分:2)
Who will now be able to use the shared resource first?
这取决于内核调度程序的实现。 Posix这样说:
如果在互斥锁引用的互斥锁对象上阻塞了线程 当调用pthread_mutex_unlock()时,导致互斥锁变为 可用,调度策略应确定哪个线程 获得互斥锁。
And what happens if I try to use pthread_destroy_mutex in *? in **?
再次来自manual:
尝试销毁锁定的互斥锁会导致未定义的行为。
如果您对这些问题有任何疑问,请咨询相关的手册页。