黑马程序员技术交流社区

标题: 生产者消费者问题 [打印本页]

作者: jlq    时间: 2015-11-2 23:26
标题: 生产者消费者问题
//生成消费问题:多线程同时操作
public class ProducerConsumerDemo {

    public static void main(String[] args) {
         Resource r= new Resource();
         Producer pro= new Producer(r);
         Consumer con= new Consumer(r);
         Thread t1= new Thread(pro);
         Thread t2= new Thread(con);
         
         Thread t3= new Thread(pro);
         Thread t4= new Thread(con);
         
         t1.start();
         t2.start();
         t3.start();
         t4.start();
    }

}
class Resource{
    private String name;
    private int count =1;
    private boolean flag =false;
   
    public synchronized void set(String name){
          while(flag )
             //--t1 --t3
             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 )
             //--t2 --t4
             try{wait();}catch (Exception e){}//this可以省略
        System. out.println(Thread.currentThread().getName()+ ".消费者...." +this.name);
          flag= false;
          this.notifyAll();     
    }
}
class Producer implements Runnable{
    private Resource res;
    Producer(Resource res){
          this.res =res;
    }
    public void run(){
          while(true ){
             res.set( "商品+");
         }        
    }
}
class Consumer implements Runnable{
    private Resource res;
    Consumer(Resource res){
          this.res =res;
    }
    public void run(){
          while(true ){
             res.out();
         }        
    }
}

作者: xingjiyuan26    时间: 2015-11-3 12:05
很不错,多点注释就更好了
作者: ash午夜阳光    时间: 2015-11-3 21:42
操作系统经典问题,牛
作者: 大自然的搬运工    时间: 2015-11-3 22:12
一楼 +1
作者: ppaapc    时间: 2015-11-3 22:20
有点意思
作者: 梦我天堂    时间: 2015-11-3 22:20
我也搞不懂,我学的头晕脑胀的
作者: shiawase    时间: 2015-11-3 23:11
加油!加油!加油!加油!加油!加油!加油!加油!加油!加油!
作者: zzwzz    时间: 2015-11-4 00:12
详解。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2