gpt4 book ai didi

java - notify() -> 等待集中的所有线程都必须退出

转载 作者:行者123 更新时间:2023-11-30 05:50:43 33 4
gpt4 key购买 nike

根据17.2.4. Interactions of Waits, Notification, and Interruption :

Similarly, notifications cannot be lost due to interrupts. Assume that a set s of threads is in the wait set of an object m, and another thread performs a notify on m. Then either:

a) at least one thread in s must return normally from wait, or

b) all of the threads in s must exit wait by throwing InterruptedException

这让我感到惊讶,因为我知道 notify() 只有 wakes up a single thread所以b)不可能发生。 b) 选项在我看来完全是无意义的,因为除了暗示 notify() 的行为类似于 notifyAll() 之外,它还应该中断所有等待线程。

问:这一段有错吗?如果没有那为什么不呢?

最佳答案

all of the threads in s must exit wait by throwing InterruptedException

这意味着所有等待 s 的线程都被中断。

b) 表示如果所有线程都被中断,则没有线程会因被中断而正常从 wait() 唤醒。

关于java - notify() -> 等待集中的所有线程都必须退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53946979/

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