在有多个实例等待的线程中调用notify()时,Java(或JVM)如何选择唤醒哪个线程?
答案 0 :(得分:2)
notify方法只唤醒一个等待该对象的线程并且该线程开始执行。因此,如果有多个线程在等待对象,则此方法将仅唤醒其中一个。唤醒线程的选择取决于线程管理的OS实现。
答案 1 :(得分:2)
您可以用来回答的来源:
Java Language Specification第17.2.2章通知:
无法保证等待集中的哪个线程被选中。
Object.notify()
上的 Javadoc读取:
唤醒正在等待此对象监视器的单个线程。如果任何线程正在等待此对象,则选择其中一个线程被唤醒。 选择是任意的,由实施决定。