A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周飞飞 中级黑马   /  2015-8-12 14:42  /  288 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


//实现生产消费

class Recsource{
        private String name;
        private int count=1;
        private boolean flag;
        public synchronized void set(String name){
                while(flag)
                        try {
                                this.wait();
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                this.name = name+"--"+(count++);
                System.out.println(Thread.currentThread().getName()+".....生产者........"+this.name);
                flag =true;
                this.notifyAll();
        }
        public synchronized void get(){
                while(!flag){
                        try {
                                this.wait();
                        } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }
                System.out.println(Thread.currentThread().getName()+".....消费者"+name);
                flag = false ;
                this.notifyAll();
        }
       
}
class Producer implements Runnable{
        private Recsource res;
        Producer(Recsource res){
                this.res = res;
        }
        public void run(){
                while(true){
                        res.set("商品");
                }
               
        }
       
}
class Consumer implements Runnable{
        private Recsource res;
        Consumer(Recsource res){
                this.res = res;
        }
        public void run(){
                while(true){
                        res.get();
                }
               
        }
       
}

public class ProducerConsumerDemo {
        public static void main(String...args){
                Recsource r = new Recsource();
                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();
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马