通知方法如何工作

GD_*_*ava 2 java multithreading java-threads

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

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

notify是否直接向第一个等待线程发送信号,或者它向线程调度程序发送信号?

rol*_*lfl 7

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

你应该仔细阅读javadoc.

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