我想在 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
??
换句话说,我希望线程按照它们尝试获取锁/创建的顺序执行。如果有更好的方法可以做到这一点,我非常愿意接受建议。