用java写线程与队列 使用Deque创建一个存放整数的队列。 创建一个生产者线程,每隔M毫秒往队列的尾部加入一个整数,所放的整数依次为1、2、3、…。 创建一个消费者线程,每隔N毫秒从队列的头部取出一个整数,并将其打印出来。
时间: 2024-05-01 08:16:17 浏览: 68
在Java中创建线程有两种方法
4星 · 用户满意度95%
```java
import java.util.Deque;
import java.util.LinkedList;
public class ProducerConsumer {
private static final int M = 1000; // 生产间隔
private static final int N = 2000; // 消费间隔
private Deque<Integer> deque = new LinkedList<>(); // 存放整数的队列
public void start() {
// 创建生产者线程
Thread producer = new Thread(() -> {
int num = 1;
while (true) {
deque.offerLast(num++); // 加入队尾
try {
Thread.sleep(M);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
producer.start();
// 创建消费者线程
Thread consumer = new Thread(() -> {
while (true) {
Integer num = deque.pollFirst(); // 取出队头
if (num != null) {
System.out.println(num); // 打印整数
}
try {
Thread.sleep(N);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
consumer.start();
}
public static void main(String[] args) {
new ProducerConsumer().start();
}
}
```
阅读全文