【发布时间】:2018-12-27 14:57:46
【问题描述】:
据17.2.4. Interactions of Waits, Notification, and Interruption:
同样,通知不会因中断而丢失。假使,假设 一组线程 s 在对象 m 的等待集中,另一个 线程对 m 执行通知。然后:
a) s 中至少有一个线程必须从等待中正常返回,或者
b) s 中的所有线程必须通过 throw 退出等待 中断异常
这让我很吃惊,因为我知道notify() 只有wakes up a single thread 所以b) 不可能发生。 b) 选项在我看来完全没有意义,因为除了暗示notify() 的行为类似于notifyAll() 之外,它还应该中断所有等待的线程。
问:这一段有错吗?如果没有,那为什么不呢?
【问题讨论】:
标签: java multithreading jls