如何用notify和解决饥饿notifyall?
如果我们有4个线程,则等待获取对同一obj的锁,并且当前线程将调用 notify()
JVM将选择任何一个线程。调用的线程是否有可能notify()再次被JVM选择,就像调用之后一样notify(),它也在等待线程列表中。
如果一个线程的调用次数比其他线程的调用次数多,这可能会导致饥饿问题,除非有某种机制会首先选择等待时间最长的线程。
我在这里假设所有线程都具有相同的优先级。如果线程优先级不同,我认为最高优先级线程将在notify()
同样,notifyall()我认为我们不知道将选择哪个线程会出现同样的问题。