小编典典

通知方法如何工作

java

按照javadoc的通知,唤醒正在此对象的监视器上等待的单个线程。如果有任何线程在此对象上等待,则选择其中一个唤醒。选择是任意的,并且可以根据实现情况进行选择。线程通过调用其中一个wait方法在对象的监视器上等待。

我想知道如何通过通知实现此行为。我在许多站点上都读到它发出信号,但是信号在这里意味着什么?

notify是直接向第一个等待线程发送信号还是向线程调度程序发送信号?


阅读 213

收藏
2020-11-26

共1个答案

小编典典

它不会将其发送到第一个线程,而是发送到 任何 等待的线程(但仅发送到一个线程)。

您应该更仔细地阅读Javadoc。

信号也可能是一个坏名字,“通知”更好。该机制的实际实现对Java程序员是透明的,除非您对Java内部结构感兴趣,否则不需要了解任何技术实现…。然后,我建议您检查OpenJDK源代码。

2020-11-26