温馨提示×

java wait方法需要配合什么

小樊
81
2024-11-26 19:35:27
栏目: 编程语言

wait() 方法是 Java 中的一个同步机制,主要用于线程间的通信。它通常与 synchronized 关键字和 notify()notifyAll() 方法一起使用。

  1. synchronized 关键字:在使用 wait() 方法之前,你需要将当前线程所访问的对象声明为 synchronized。这样可以确保在同一时刻,只有一个线程能够进入该对象的同步代码块。
synchronized (object) {
    // 同步代码块
}
  1. notify()notifyAll() 方法:这两个方法用于唤醒在同一个对象上等待的线程。notify() 只唤醒一个等待的线程,而 notifyAll() 会唤醒所有等待的线程。通常,我们在一个线程中调用 notify()notifyAll(),而在另一个线程中调用 wait()
synchronized (object) {
    // 等待条件
    object.wait(); // 当前线程等待

    // 唤醒其他等待的线程
    object.notify(); // 只唤醒一个线程
    // 或者
    object.notifyAll(); // 唤醒所有线程
}

需要注意的是,调用 wait() 方法时,当前线程必须拥有该对象的监视器(即锁)。否则,线程会抛出 IllegalMonitorStateException

0