gpt4 book ai didi

c++ - 多个线程试图锁定

转载 作者:行者123 更新时间:2023-11-30 01:58:40 25 4
gpt4 key购买 nike

我想在 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
??

换句话说,我希望线程按照它们尝试获取锁/创建的顺序执行。如果有更好的方法来做到这一点,我非常愿意接受建议。

最佳答案

不 - 不会有这样的保证顺序。在线程 1 释放互斥锁后,线程 3 可以获得或线程 2 可以获得它。你无法预测这一点。

阅读this寻求解释。

关于c++ - 多个线程试图锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com