如果有人在谷歌上搜索“notify()
和notifyAll()
之间的区别”,那么会弹出很多解释(撇开javadoc段落)。这一切都归结为等待线程被唤醒的数量:一个在notify()
中,所有在notifyAll()
中。
然而(如果我确实理解了这些方法之间的区别),只有一个线程总是被选择用于进一步的监视采集;第一种情况是VM选择的线程,第二种情况是系统线程调度程序选择的线程。程序员不知道它们的确切选择过程(在一般情况下)。
那么,notify ()和notifyAll ()之间的有用的区别是什么?我遗漏了什么吗?