linbingfeng
2016-04-05 23:01
synchronized(lockObj){
// if (energyBoxes[from] < amount)
// return;
//while循环,保证条件不满足时任务都会被条件阻挡
//而不是继续竞争CPU资源
while (energyBoxes[from] < amount){
try {
//条件不满足, 将当前线程放入Wait Set
lockObj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
不会,在老师的例子中设置了单次转移能量的上限等于初始能量,因此至少有一条线程可以满足条件
会,如果所有的线程都进入wait set中,那么所有的线程都在等待。
深入浅出Java多线程
186071 学习 · 498 问题
相似问题