生产者和消费者代码。

资源:


package  ProducerConsumer;

public   class   Goods {
      String  name ;
        int   count ;
        boolean   flag  =  true ;
      
        public   synchronized   void  product(String name)
      {
               while (!   flag )
            {
                     try  {
                           this .wait();
                  }  catch  (InterruptedException e) {
                        e.printStackTrace();
                  }
            }
               this .   name  = name +  count ++;
            System.   out .println(Thread. currentThread().getName() +  "生产者生产了----"  +  this .   name );
               flag  =  false ;
               this .notifyAll();

      }
      
        public   synchronized   void  consume()
      {
               while (   flag )
            {
                     try  {
                           this .wait();
                  }  catch  (InterruptedException e) {
                        e.printStackTrace();
                  }
            }
            System.   out .println(Thread. currentThread().getName() +  "消费了---"  +  name );
               flag  =  true ;
               this .notifyAll();
      }
}

生产者;

package  ProducerConsumer;

public   class   Producer  implements  Runnable{
      Goods  goods ;
      
        public  Producer(Goods g)
      {
               this .   goods  = g;
      }
      
        public   void  run()
      {
               while (   true )
            {
                     goods .product(   "商品"  );
            }
      }
}

消费者


package  ProducerConsumer;

public   class   Consumer  implements  Runnable{
      Goods  goods ;
      
        public  Consumer(Goods g)
      {
               this .   goods  = g;
      }
      
        public   void  run()
      {
               while (   true )
            {
                     goods . consume();
            }
      }
}


应用


package  ProducerConsumer;

public   class   AppDemo {
        public   static   void  main(String[] args) {
            Goods g=  new  Goods();
            Producer p =  new  Producer(g);
            Consumer c =  new  Consumer(g);

            Thread t1 =  new  Thread(p);
            Thread t2 =  new  Thread(p);
            Thread t3 =  new  Thread(c);
            Thread t4 =  new  Thread(c);
            
            t1.start();
            t2.start();
            t3.start();
             t4.start();
      }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值