gpt4 book ai didi

c++ - 当互斥量解锁时,它是 notify_all 还是 notify_one?

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

据我了解,当我有一组线程受 std::lock_guardstd::unique_lock 保护 std::mutex 并且通过显式解锁或锁超出范围解锁互斥锁,然后通知等待线程。

这个通知是 notify_one 还是 notify_all

我怀疑前者是为了避免快点等待,但想确定一下。

最佳答案

您似乎要问的是,当线程 T0 锁定了互斥锁 M 并且线程 T1..Tn 被阻止尝试时锁定 M,当 T0 解锁 M 时会发生什么?显然只有一个线程可以成功锁定M,因此系统没有理由“通知”(即调度)多个等待者。但是,您的问题并不特定于任何一个平台,因此答案可能必须是“它取决于实现”。

关于c++ - 当互斥量解锁时,它是 notify_all 还是 notify_one?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473520/

25 4 0