黑马程序员 多线程间的通信
上一篇 /
下一篇 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: