java中的多生产者-消费者问题学习
来源:互联网 发布:小米盒子视频软件 编辑:程序博客网 时间:2024/06/05 12:47
import java.io.*;import java.util.Scanner;import java.util.concurrent.locks.*;class Resource{private String name;private int count=1;private boolean flag=false;Lock lock =new ReentrantLock();Condition producer_con=lock.newCondition();Condition consumer_con=lock.newCondition();Condition con =lock.newCondition();public void set(String name){lock.lock();try{while(flag)//try{lock.wait();}catch(InterruptedException e){}try{producer_con.await();}catch(InterruptedException e){}this.name=name+count;count++;System.out.println(Thread.currentThread().getName()+"....生产者..."+this.name);flag=true;consumer_con.signal();}finally{lock.unlock();}}public void out(){lock.lock();try{while(!flag)try{consumer_con.await();}catch(InterruptedException e){}System.out.println(Thread.currentThread().getName()+this.name);flag=false;producer_con.signal();}finally{lock.unlock();}}}class Consumer implements Runnable{private Resource r;Consumer(Resource r){this.r = r;}public void run(){while(true){r.out();}}}class Producer implements Runnable{private Resource r;Producer(Resource r){this.r=r;}public void run(){while(true){r.set("烤鸭");}}}class Main{public static void main(String args[]){Resource r=new Resource();Producer pro=new Producer(r);Consumer con=new Consumer(r);Thread t0=new Thread(pro);Thread t1=new Thread(pro);Thread t2=new Thread(con);Thread t3=new Thread(con);t0.start();t1.start();t2.start();t3.start();}}
0 0
- java中的多生产者-消费者问题学习
- JAVA线程中的生产者和消费者问题
- java学习之消费者和生产者问题
- java生产者 消费者问题
- Java生产者消费者问题
- java生产者消费者问题
- Java 生产者消费者问题
- java 生产者消费者问题
- Java生产者消费者问题 .
- [Java] 生产者&消费者问题
- Java 生产者消费者问题
- java 生产者消费者问题
- java 生产者消费者问题
- Java 生产者消费者问题
- java生产者消费者问题
- Java 生产者消费者问题
- java:生产者消费者问题
- Java-生产者消费者问题
- 产品开发需求
- Java多线程 -- 信号量
- Codeforces 235E Number Challenge (神定理+莫比乌斯反演)
- 下拉菜单及代码添加控件(菜鸟起步,大神勿喷,如有指教,洗耳恭听)
- POJ 2104 K-th Number
- java中的多生产者-消费者问题学习
- Mysql专题一 : 引擎
- webview的具体设置与使用
- android横竖全屏设置
- Java 8/25
- 【HDU4072】【线段树】【确定上下界】
- stl::string的引用计数
- 用UICollectionView实现瀑布流
- linux时间和定时脚本