1、前置知识:
阻塞队列(BlockingQueue):解决线程通信的问题,阻塞方法有put、take
生产者消费者模式:生产者产生数据的线程、消费者使用数据的线程,用阻塞队列实现如下
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class BlockingQueueTests {
public static void main(String[] args) {
//初始化队列大小为10
BlockingQueue queue = new ArrayBlockingQueue(10);
//创建1个生产线程、3个消费线程
new Thread(new Producer(queue)).start();
new Thread(new Consumer(queue)).start();
new Thread(new Consumer(queue)).start();
new Thread(new Consumer(queue)).start();
}
}
//生产者
class Producer implements Runnable {
private BlockingQueue<Integer> queue;
public Producer(BlockingQueue<Integer> queue) {
this.queue = queue;
}