wait(),notify() - 哪个线程首先解锁?

vic*_*ico 4 java multithreading java-threads

试图了解wait()notify().我知道线程何时A进入wait()它将被notify()其他线程唤醒.

但究竟会发生什么,如果线程A,B,Cwait()以表示订单?谁会被唤醒notify()?根据我的实验,A线程将首先被唤醒.我是正确的?

这是否意味着系统知道线程的顺序是wait()什么?

Jon*_*eet 7

从文档中notify(),重点是我的:

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

其他一些API,比如Semaphore,有"公平",在这里你可以确保线程的概念继续在其封锁的顺序.