Java实现生产者消费者
方法1:最简单--利用LinkedBlockingQueue 队列具有先进先出的特点,成为经常应用于生产-消费者模式的数据结构。 1.将一个对象放到队列尾部,如果队列已满,就等待直到有空闲节点。 ——put()方法 2.从队列头部取一个对象,如果没有对象,就等待直到有对象可取。 ——take()方法 3.在存取队列的过程中,锁定队列对象,不允许其它线程访问队列。——使得它是线程安全的 下面的代码适用于多个生产者、多个消费者。 1 //Producer.java 2 import java.util.concurrent.BlockingQueue; 3 4 /* 5 * Usage example, based on a typical producer-consumer scenario. 6 * Note that a <tt>BlockingQueue</tt> can safely be used with multiple 7 * producers and multiple consumers. 8 * <pre> 9 */ 10 class Producer implements Runnable { 11 private BlockingQueue<Object> queue; 12 13 Producer(BlockingQueue<Object> q) { 14