使用BlockingQueue实现生产者,消费者模式
2017-12-21 14:50
453 查看
生产者类:
消费者类:
测试类:
输出结果:
生产线程Producer1
生产线程Producer2
消费线程Producer1
消费线程Producer2
生产线程Producer3
生产线程Producer4
消费线程Producer3
消费线程Producer4
生产线程Producer5
消费线程Producer5
import java.util.concurrent.BlockingQueue; public class Producer implements Runnable { BlockingQueue<String> queue; public Producer(BlockingQueue<String> queue){ this.queue=queue; } @Override public void run() { try { String temp="消费线程"+Thread.currentThread().getName(); System.out.println("生产线程"+Thread.currentThread().getName()); queue.put(temp); } catch (InterruptedException e) { e.printStackTrace(); } } }
消费者类:
import java.util.concurrent.BlockingQueue; public class Customer implements Runnable { BlockingQueue<String> queue; public Customer(BlockingQueue<String> queue){ this.queue=queue; } @Override public void run() { try { String temp=queue.take(); System.out.println(temp); } catch (InterruptedException e) { e.printStackTrace(); } } }
测试类:
import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; public class Test { public static void main(String[] args) { BlockingQueue<String> queue=new LinkedBlockingQueue<String>(2); Producer producer=new Producer(queue); Customer customer=new Customer(queue); for(int i=0;i<5;i++){ new Thread(producer,"Producer"+(i+1)).start(); new Thread(customer,"Customer"+(i+1)).start(); } } }
输出结果:
生产线程Producer1
生产线程Producer2
消费线程Producer1
消费线程Producer2
生产线程Producer3
生产线程Producer4
消费线程Producer3
消费线程Producer4
生产线程Producer5
消费线程Producer5
相关文章推荐
- java使用LinkedBlockingQueue实现 生产者 消费者模式
- 使用BlockingQueue实现生产者和消费者模式
- 多线程---使用ManualResetEvent来控制线程间的同步(实现了消费者和生产者模式)
- Java多线程-工具篇-BlockingQueue(实现生产者和消费者模式)
- Queue、BlockingQueue以及用BlockingQueue实现生产者/消费者模式
- 使用Object类中的wait()和notify()方法实现生产者和消费者模式
- 使用BlockingQueue的生产者消费者模式
- 使用Java的BlockingQueue实现生产者-消费者
- 生产者和消费者问题-使用BlockingQueue来实现
- 使用BlockingQueue实现生产者和消费者模型
- Java利用BlockingQueue实现生产者和消费者模式
- How to: 使用 数据流 实现生产者-消费者模式
- BlockingQueue实现生产者、消费者模式
- 使用Java的BlockingQueue实现生产者-消费者
- 使用libuv实现生产者和消费者模式
- 使用Java的BlockingQueue实现生产者-消费者
- BlockingQueue实现生产者-消费者模式
- java消费者生产者模式及JDK之阻塞队列LinkedBlockingQueue实现
- 利用LinkedBlockingQueue实现生产者-消费者模式
- 多线程---使用ManualResetEvent来控制线程间的同步(实现了消费者和生产者模式)