当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级辅导:Notify()和notifyall()的原理
发布时间:2010/3/14 18:14:11 来源:城市学习网 编辑:MOON
  在java多线程编程中,就要涉及到了对于资源的,当多个线程同时一个资源的时候就要涉及到一种策略。java提供了锁的机制,就是一个线程这个资源的时候可以先把这个资源锁住可以用synchronized(the object)来锁定the object,其他这个资源的线程就进入阻塞状态,直到当前的线程执行了这个对象的notify或者notifyall其他这个对象的阻塞状态的线程才有可能变成就绪状态。其中notify是唤醒一个线程,而notifyall是唤醒所有阻塞进程。
  示例
  public void rendezvousEvent(RendezvousEvent event) {
  if (event.getType() RendezvousEvent.RDVCONNECTevent.getType() RendezvousEvent.RDVRECONNECTevent.getType() RendezvousEvent.BECAMERDV) {
  synchronized (networkConnectLock) {
  //同步资源,也就是锁定了
  connected = true;
  networkConnectLock.notifyAll(); //唤醒其他阻塞线程,也就是解锁了
  }
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved