在Java中,wait()
方法是Object
类的一个方法,用于让当前线程等待,直到其他线程调用该对象的notify()
或notifyAll()
方法。wait()
方法与synchronized
关键字一起使用,以实现线程同步。
以下是使用wait()
方法进行线程同步的步骤:
synchronized
。这样,只有获得锁的线程才能执行该代码块或方法。public synchronized void synchronizedMethod() {
// 同步代码
}
或
public void synchronizedMethod() {
synchronized (this) {
// 同步代码
}
}
wait()
方法让当前线程等待。调用wait()
方法时,线程会释放对象锁,进入等待状态。为了确保线程安全,需要在wait()
方法后使用synchronized
关键字重新获取对象锁。public synchronized void synchronizedMethod() {
try {
wait(); // 当前线程等待
} catch (InterruptedException e) {
e.printStackTrace();
}
// 重新获取对象锁并执行同步代码
}
notify()
或notifyAll()
方法。notify()
方法会唤醒一个正在等待的线程,而notifyAll()
方法会唤醒所有正在等待的线程。public synchronized void notifyMethod() {
notify(); // 唤醒一个等待的线程
}
或
public synchronized void notifyAllMethod() {
notifyAll(); // 唤醒所有等待的线程
}
注意:在使用wait()
、notify()
和notifyAll()
方法时,必须确保它们是在同步代码块或方法中调用的,否则会抛出IllegalMonitorStateException
异常。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>