电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Notify()和notifyall()的原理


发布日期:2024/8/31
 

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

示例如下

public void rendezvousEvent(RendezvousEvent event) {

if (eventgetType() == RendezvousEventRDVCONNECT || eventgetType() == RendezvousEventRDVRECONNECT || eventgetType() == RendezvousEventBECAMERDV) {

synchronized (networkConnectLock) {

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

connected = true;

networkConnectLocknotifyAll(); //唤醒其他阻塞线程也就是解锁了

}

}

}

文章出处DIY部落(_webprogram/jsp/jsp_js//l)

上一篇:用百度获取IP地址经纬度

下一篇:Jar文件包间接及Jar命令开发实例详解