课程
/后端开发
/Java
/深入浅出Java多线程
如果energyBox[from] < amount 成立,那么当前线程会一直运行 lockObj.wait(),这样岂不是当前线程一直在运行着,无法结束了,一直耗着CPU资源?
2016-09-02
源自:深入浅出Java多线程 4-3
正在回答
既然理解成线程会阻塞,不会执行。当其他线程NotifyAll的时候,如果他获取资源,又会发生阻塞。那么这个线程会一直运行下去,不会消亡?(while条件一直成立)
在线程中调用了wait()方法后,线程就会进入阻塞,让出cpu资源来给其他线程运行了。你可以理解为Object的wait()和Thread的sleep()方法一样,只不过前者会先释放那个锁,而后者不会。
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
2 回答关于循环的问题
1 回答关于extends Thread类的问题
3 回答关于form取值的问题
2 回答关于线程休眠的问题
1 回答关于休眠的几个问题