【发布时间】:2013-06-13 20:31:30
【问题描述】:
我想在 C++ 程序中使用 pthreads 和 pthread_mutexes。我还没有任何实际代码,只是一个关于互斥锁如何工作的问题。如果我让线程 1 锁定了一个互斥体,然后 n 个其他线程尝试锁定同一个互斥体,那么当线程 1 解锁互斥体时会发生什么行为?如果线程 1 获得了锁,那么线程 2 尝试加锁,然后线程 3 尝试加锁,释放锁时线程 2 的优先级是否高于线程 3?
这是一个更有条理的锁定时间表:
thread 1 acquires lock
thread 2 attempts to lock
thread 3 attempts to lock
thread 4 attempts to lock
thread 1 unlocks mutex
??
换句话说,我希望线程按照它们尝试获取锁/创建的顺序执行。如果有更好的方法可以做到这一点,我非常愿意接受建议。
【问题讨论】:
标签: c++ multithreading pthreads mutex