在Java多线程中,notifyAll()方法用于唤醒所有正在等待该对象的线程。具体使用方法如下:
synchronized(obj) {
while (condition) {
obj.wait();
}
}
synchronized(obj) {
condition = false;
obj.notifyAll();
}
在调用notifyAll()方法后,被唤醒的线程会重新竞争锁,然后继续执行。注意,notifyAll()方法只会唤醒正在等待该对象的线程,不会释放锁。因此,被唤醒的线程仍然需要等待锁被释放才能继续执行。
需要注意的是,notifyAll()方法是Object类中的方法,因此任何对象都可以调用该方法。但是,只有在同一个对象的监视器上等待的线程才能被唤醒。