Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166526
  • 博文数量: 45
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 454
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-19 13:35
文章分类

全部博文(45)

文章存档

2011年(1)

2009年(44)

我的朋友

分类: Java

2009-10-21 15:33:04

 在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();
             //唤醒其他阻塞线程,也就是解锁了
          }
     }
}
文章出处:DIY部落()
阅读(672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~