java实现wait与notify的工具
时间: 2023-05-11 19:04:48 浏览: 103
Java中的wait()和notify()是用于线程间通信的工具,可以实现线程的同步和协作。wait()方法会使当前线程进入等待状态,直到其他线程调用notify()或notifyAll()方法唤醒它;而notify()方法则会随机唤醒一个正在等待的线程。下面是一个简单的Java代码示例,演示了如何使用wait()和notify()方法:
```
public class WaitNotifyExample {
public static void main(String[] args) {
final Object lock = new Object(); // 定义一个锁对象
// 线程A
Thread threadA = new Thread(new Runnable() {
@Override
public void run() {
synchronized (lock) {
try {
System.out.println("Thread A is waiting...");
lock.wait(); // 等待其他线程唤醒
System.out.println("Thread A is notified!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
// 线程B
Thread threadB = new Thread(new Runnable() {
@Override
public void run() {
synchronized (lock) {
System.out.println("Thread B is notifying...");
lock.notify(); // 唤醒一个等待的线程
}
}
});
threadA.start(); // 启动线程A
threadB.start(); // 启动线程B
}
}
```
在这个例子中,线程A会先执行,并进入等待状态,直到线程B调用notify()方法唤醒它。注意,wait()和notify()方法必须在同步块中调用,并且必须使用同一个锁对象。
阅读全文