java(多线程)wait notify notifyAll

wait notify notifyAll 都是Object类的方法

  wait notify notifyAll都是对实例的wait set 进行操作 所以他们是Object的方法比较合适

  另外 注意有synchronized修饰的方法 当线程A对实例obj进行操作时 会加锁 别的线程不能进入 而obj.wait(),obj.notifyAll()方法调用

时都需要线程获取实例的锁定,例如 A线程正在操作实例obj时 obj.wait(),则A线程进入obj的wait set 线程B就可以获取obj的锁定进行对obj

的操作了 当B线程获取了锁定 然后执行obj.notifyAll() 则此时线程A退出obj的wait set 但此时线程B还拿着obj的锁定 只有当线程B执行完放开锁定线程A

才有可能继续获得锁定执行wait()后的代码

原文地址:https://www.cnblogs.com/yaoboyyao/p/3582452.html