黑马程序员 多线程间的通信

上一篇 / 下一篇  2014-07-06 22:17:54 / 个人分类:java知识


多个线程间的通信:等待唤醒机制

只有同一个锁上的被等待线程,可以被同一个锁上的notify唤醒,不可以对不同锁中的线程进行唤醒。

class resource()
{
 private String name;
 private int count=1;
 private boolean flag=false;
 private Lock lock=new ReentrantLock();
 private Condition condtion_pro=lock.newCondition();
 private Condition condtion_con=lock.newCondition();
 public void set(String name) throws InterruptedException
 {
  lock.lock;
  try{
  while(flag)
       condtion_pro.await();
 this.name=name+"---"+count++;
 System.out.println(Thread.currentThread().getName()+"--生--"+this.name);
    flag=true;
 condtion_con.signalAll();
 }
 finally{
  lock.unlock();
  }
 }
 
 public void out()
 {
  lock.lock();
  try{
   while(!flag)
      condtion_con.await();
   System.out.println(Thread.currentThread().getName()+"---销---"+this.name);
  flag=false;
  condtion_pro.signalAll();
  }
  finally{
   lock.unlock;
  }
 }
 

 


TAG:

 

评分:0

我来说两句

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 6577
  • 日志数: 16
  • 建立时间: 2013-12-02
  • 更新时间: 2014-07-14

RSS订阅

Open Toolbar