gpt4 book ai didi

multithreading - QMutex 卡在锁定状态

转载 作者:行者123 更新时间:2023-12-04 06:48:23 25 4
gpt4 key购买 nike

我有一个属于某个类的函数,在这个函数中,函数开头有一个 mutex.lock,返回前有一个 mutex.unlock。现在遇到了mutex卡在locked状态的情况。如果此功能是我使用该互斥锁锁定和解锁的唯一地方,那我该怎么办。该函数从主线程和 1 或 2 个其他 QThreads 调用。

更新:问题是由于线程没有在函数调用之间休眠。也许缺乏 sleep 会很快重新锁定互斥体?你也可以调用 yieldCurrentThread();

最佳答案

如果在函数中抛出异常,最后的 unlock() 可能不会执行。为了确保 QMutex 在这种情况下被解锁,您可以使用 QMutexLocker 进行锁定。目的。此对象在被销毁时会自动解锁互斥锁,即使在异常后堆栈展开期间发生这种情况也是如此。

关于multithreading - QMutex 卡在锁定状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2121200/

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