JAVA 线程间通信 - 生产者与消费者

来源:互联网 发布:桌面视频录制软件 编辑:程序博客网 时间:2024/05/01 15:29

//仅作为学习笔记


/*多线程编程 生产者和消费者*/class Res{private int count=0;private String name;privateboolean flag = false;public synchronized void set(String name){while(flag)try{wait();}catch(Exception e){}this.name = name+ " "+ (++count);System.out.println(Thread.currentThread().getName() + "--生产者--" + this.name);flag = true;this.notifyAll();}public synchronized void out(){while(!flag)try{this.wait();}catch(Exception e){}System.out.println(Thread.currentThread().getName() + "--消费者----" + this.name);flag = false;this.notifyAll();//唤醒所有的等待线程}}class Producer implements Runnable{Res r = new Res();Producer(Res r){this.r = r;}public void run(){while(true)r.set("商品");}}class Consumer implements Runnable{Res r = new Res();Consumer(Res r){this.r = r;}public void run(){while(true)r.out();}}class TestDemo{public static void main(String []args){Res r = new Res();Producer p = new Producer(r);Consumer c = new Consumer(r);Thread t1 = new Thread(p);Thread t2 = new Thread(c);Thread t3 = new Thread(p);Thread t4 = new Thread(c);t1.start();t2.start();t3.start();t4.start();}}


原创粉丝点击