1. 首页
  2. 编程面试题
  3. Java
  4. 并发多线程

notify() 和 notifyAll() 有什么区别?



如果线程调用了对象的 wait()方法,那么线程便会处于该对象的等待池中,等待池中的线程不会去竞争该对象的锁。

notifyAll() 会唤醒所有的线程,notify() 只会唤醒一个线程。

notifyAll() 调用后,会将全部线程由等待池移到锁池,然后参与锁的竞争,竞争成功则继续执行,如果不成功则留在锁池等待锁被释放后再次参与竞争。而 notify()只会唤醒一个线程,具体唤醒哪一个线程由虚拟机控制。

发布者:admin,如若转载,请注明出处:https://ai1024.vip/37614.html

QR code
//