介绍:BlockingQueue 提供了可阻塞的插入和移除的方法。当队列容器已满,生产者线程会被阻塞,直到队列未满;当队列容器为空时,消费者线程会被阻塞,直至队列非空时为止。
要求:
实现一个生产者/消费者模型,其中:
生产者生产10个随机的整数供消费者使用(随机数可以通过new Random().nextInt()获得)
消费者依次消费这10个随机的整数
标准输出应该得到这样的结果:
Producing 42
Consuming 42
Producing -1
Consuming -1
…
Producing 10086
Consuming 10086
Producing -12345678
Consuming -12345678
首先BlockingQueue是一个接口,所以我们要创建一个他的实现类,随便选择一个,创建一个容量是1的
ArrayBlockingQueue:
BlockingQueue<Integer> queue=new ArrayBlockingQueue<>(1);
我们的需求是生产一个,消费一个,先写消费者:
public static class Consumer extends Thread {
BlockingQueue<Integer> queue;
BlockingQueue<Integer> control;
public Consumer(BlockingQueue<Integer> queue,