Java经典线程同步问题------生产者与消费者
2012-07-26 19:38
495 查看
先上代码
运行结果
class Test { public static void main(String []args) { Queue q=new Queue(); Producer p=new Producer(q); Consumer c=new Consumer(q); p.start(); c.start(); } } class Producer extends Thread { Queue q; Producer(Queue q) { this.q=q; } public void run() { for(int i=0;i<10;i++) { q.put(i); System.out.println("Producer put"+i); } } } class Consumer extends Thread { Queue q; Consumer(Queue q) { this.q=q; } public void run() { while(true) { System.out.println("Consumer get"+q.get()); } } } class Queue { int value; boolean bFull=false; public synchronized void put(int i) { if(!bFull) { value=i; bFull=true; notify(); } try{ wait(); } catch(Exception e) {} } public synchronized int get() { if(!bFull) { try { wait(); } catch(Exception e) { } } bFull=false; notify(); return value; } }
运行结果
Producer put0 Consumer get0 Consumer get1 Producer put1 Consumer get2 Producer put2 Consumer get3 Producer put3 Consumer get4 Producer put4 Consumer get5 Producer put5 Consumer get6 Producer put6 Consumer get7 Producer put7 Consumer get8 Producer put8 Consumer get9 Producer put9
相关文章推荐
- [Java] Thread-05- 线程同步-生产者与消费者的经典问题
- Java经典线程同步问题------生产者与消费者
- 经典线程同步问题(生产者&消费者)--Java实现
- Java经典线程同步问题------生产者与消费者
- 经典线程同步问题(生产者&消费者)--Java实现
- 经典线程同步问题(生产者&消费者)--Java实现
- [Java] Thread-05- 线程同步-生产者与消费者的经典问题
- java模拟生产者与消费者问题(线程同步)
- java多线程之生产者消费者经典问题
- Java 线程同步问题 生产者-消费者 算法实现 -Java学习笔记(29)
- 线程同步经典问题——生产者消费者问题
- java多线程之生产者消费者经典问题
- 经典线程同步问题(生产者&消费者)
- java实现的生产者和消费者问题-涉及线程同步与通信
- java多线程总结六:经典生产者消费者问题实现
- java 多线程经典例子——生产者与消费者的问题
- 多线程经典案例——生产者/消费者问题的Java实现与详解
- java多线程总结六:经典生产者消费者问题实现
- java多线程之生产者消费者经典问题
- java多线程实现生产者与消费者---经典问题