Notify()和notifyall()的原理计算机等级考试

文章作者 100test 发表时间 2010:01:01 12:22:45
来源 100Test.Com百考试题网


  在java多线程编程中,就要涉及到了对于资源的访问,当多个线程同时访问一个资源的时候就要涉及到一种访问策略。java提供了锁的机制,就是一个线程访问这个资源的时候可以先把这个资源锁住可以用synchronized(the object)来锁定the object,其他访问这个资源的线程就进入阻塞状态,直到当前的线程执行了这个对象的notify或者notifyall其他访问这个对象的阻塞状态的线程才有可能变成就绪状态。其中notify是唤醒一个线程,而notifyall是唤醒所有阻塞进程。来源:

  示例如下:

  public void rendezvousEvent(RendezvousEvent event) {

  if (event.getType() == RendezvousEvent.RDVCONNECT || event.getType() == RendezvousEvent.RDVRECONNECT || event.getType() == RendezvousEvent.BECAMERDV) {

  synchronized (networkConnectLock) {

  //同步资源,也就是锁定了

  connected = true.

  networkConnectLock.notifyAll(). //唤醒其他阻塞线程,也就是解锁了

  }

  }

  }

  Java编程实例:Java版农历和阳历转换源码

  Java认证辅导:非阻塞I/O简介

  Tomcat内存溢出的三种情况及解决办法分析 



相关文章


include指令和include动作的区别计算机等级考试
JSP页面的五种跳转方法计算机等级考试
java中游标的应用计算机等级考试
java中对于复杂对象排序的模型及其实现计算机等级考试
Notify()和notifyall()的原理计算机等级考试
HttpClient实现COOKIE方法计算机等级考试
System.arraycopy方法的使用计算机等级考试
多线程中的死锁举例与分析计算机等级考试
Java解析XML文件的四种方法计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛