java wait代码举例
时间: 2024-05-02 07:03:26 浏览: 74
以下是一个简单的 Java wait() 示例:
```java
public class WaitExample {
public static void main(String[] args) {
final Object lock = new Object();
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
synchronized (lock) {
try {
System.out.println("Thread 1 is waiting...");
lock.wait(); // 线程1等待
System.out.println("Thread 1 is awake!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
synchronized (lock) {
try {
System.out.println("Thread 2 is sleeping...");
Thread.sleep(5000); // 线程2睡眠5秒
lock.notify(); // 线程2唤醒线程1
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
thread1.start();
thread2.start();
}
}
```
在这个示例中,我们创建了两个线程,其中一个线程等待锁,另一个线程在锁上调用 notify() 方法来唤醒等待线程。注意,wait() 和 notify() 方法必须在同步代码块中调用,因为它们依赖于对象的监视器锁。
阅读全文