Java中wait()和sleep()方法的区别是什么?带代码示例
大家好!我开始学习Java中的多线程,但对wait()和sleep()方法感到困惑。两者似乎都会暂停线程的执行,但行为不同。请帮忙理清。
我有一个简单的例子。我创建两个线程:一个生产数据,另一个消费数据。我使用sleep()进行同步:
```java
class Producer extends Thread {
private List buffer = new ArrayList<>();
public void run() {
for (int i = 0; i < 10; i++) {
buffer.add(i);
System.out.println("已生产: " + i);
try {
Thread.sleep(100); // 等待消费者取走
} catch (InterruptedException e) {}
}
}
public int getValue() {
return buffer.remove(0);
}
}
class Consumer extends Thread {
private Producer producer;
Consumer(Producer p) { producer = p; }
public void run() {
for (int i = 0; i < 10; i++) {