gpt4 book ai didi

C++ Mutexes-检查是否有另一个线程在等待

转载 作者:行者123 更新时间:2023-11-27 23:09:33 25 4
gpt4 key购买 nike

是否有可能在不释放互斥锁的情况下,已经锁定互斥锁的线程检查另一个线程是否已经在等待?例如,假设一个线程有 3 个任务要在数据 block 上运行,但另一个线程也可能有一个短任务要在数据上运行。理想情况下,我会让第一个线程检查三个任务中的每一个之间是否有另一个线程在等待,并允许另一个线程在恢复其他两个任务之前执行其任务。 Boost 是否有一种支持此功能的互斥锁类型(假设 C++11 互斥锁或锁类型不支持此功能),或者这可以用条件变量来完成吗?

最佳答案

您无法检查其他线程是否正在等待互斥量。

如果你想让其他线程有机会运行,只需释放互斥量即可。无需知道是否有人在等待。然后根据需要重新获取。

条件变量是事件。如果您想等待直到某事发生,请使用它们。要检查是否发生了某些事情,您需要一个常规(互斥保护或原子)变量。

关于C++ Mutexes-检查是否有另一个线程在等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21152999/

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