按照javadoc的通知,唤醒正在此对象的监视器上等待的单个线程。如果有任何线程在此对象上等待,则选择其中一个唤醒。选择是任意的,并且可以根据实现情况进行选择。线程通过调用其中一个wait方法在对象的监视器上等待。
我想知道如何通过通知实现此行为。我在许多站点上都读到它发出信号,但是信号在这里意味着什么?
notify是直接向第一个等待线程发送信号还是向线程调度程序发送信号?
它不会将其发送到第一个线程,而是发送到 任何 等待的线程(但仅发送到一个线程)。
您应该更仔细地阅读Javadoc。
信号也可能是一个坏名字,“通知”更好。该机制的实际实现对Java程序员是透明的,除非您对Java内部结构感兴趣,否则不需要了解任何技术实现…。然后,我建议您检查OpenJDK源代码。