首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

wait notify的信号丢失有关问题

2012-12-19 
wait notify的信号丢失问题T1:synchronized(sharedMonitor){sharedMonitor.notify()}T2:while(someCondit

wait notify的信号丢失问题

T1:synchronized(sharedMonitor){    sharedMonitor.notify();}T2:while(someCondition){//Point1   synchronized(sharedMonitor){      sharedMonitor.wait();   }}


如果T2对someCondition求值发现为true,在Point1,线程调试器可能切换到了T1,而T1调用notify(),当T2再次执行的时候,会进入wait(),此时notify信号已经错过,因此T2将无限等待这个已经发送过的信号,造成死锁。
解决方法 在T2中把synchronized放在最前。

热点排行