通知方法如何工作

时间:2013-05-06 17:16:31

标签: java multithreading java-threads

根据javadoc通知唤醒正在等待此对象监视器的单个线程。如果任何线程正在等待此对象,则选择其中一个线程被唤醒。选择是任意的,由实施决定。线程通过调用其中一个等待方法等待对象的监视器。

我想知道notify如何实现这种行为。在我读过的很多网站上发送信号但信号在这里意味着什么?

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

1 个答案:

答案 0 :(得分:7)

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

您应该阅读the javadoc more carefully.

信号也可能是一个坏名字,'通知'更好。该机制的实际实现对Java程序员是透明的,并且您不需要技术实现,除非您对Java内部感兴趣,然后我建议您检查OpenJDK源代码。 / p>