用Java使用Deque创建一个存放整数的队列。 创建一个生产者线程,每隔M毫秒往队列的尾部加入一个整数,所放的整数依次为1、2、3、…。 创建一个消费者线程,每隔N毫秒从队列的头部取出一个整数,并将其打印出来。
时间: 2024-05-08 17:16:35 浏览: 74
```java
import java.util.concurrent.*;
public class ProducerConsumer {
public static void main(String[] args) {
Deque<Integer> queue = new ArrayDeque<>();
int M = 1000; // 生产者线程每隔 M 毫秒生产一个数据
int N = 2000; // 消费者线程每隔 N 毫秒消费一个数据
Thread producer = new Thread(() -> {
int i = 1;
while (true) {
queue.offerLast(i);
System.out.println("生产者生产了数据:" + i);
i++;
try {
Thread.sleep(M);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
Thread consumer = new Thread(() -> {
while (true) {
if (!queue.isEmpty()) {
int data = queue.pollFirst();
System.out.println("消费者消费了数据:" + data);
}
try {
Thread.sleep(N);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
producer.start();
consumer.start();
}
}
```
阅读全文