为了账号安全,请及时绑定邮箱和手机立即绑定

下面的代码进入wait之后,再次被唤醒,会不会有一定几率导致程序发生死锁?

synchronized(lockObj){

 

// if (energyBoxes[from] < amount)

// return;

//while循环,保证条件不满足时任务都会被条件阻挡

//而不是继续竞争CPU资源

while (energyBoxes[from] < amount){

try {

//条件不满足, 将当前线程放入Wait Set

lockObj.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

 


正在回答

2 回答

不会,在老师的例子中设置了单次转移能量的上限等于初始能量,因此至少有一条线程可以满足条件

1 回复 有任何疑惑可以回复我~
#1

慕粉4279355

正解~~
2016-12-03 回复 有任何疑惑可以回复我~

会,如果所有的线程都进入wait set中,那么所有的线程都在等待。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

下面的代码进入wait之后,再次被唤醒,会不会有一定几率导致程序发生死锁?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号