课程
/后端开发
/Java
/深入浅出Java多线程
既然唤醒后还要竞争锁,那么可不可以把while语句替换成if语句?
2014-12-08
源自:深入浅出Java多线程 4-4
正在回答
不可以,因为唤醒并获得了锁之后,是从上一次调用wait()的地方之后开始执行,这样if将不能阻挡不合要求的处理。
CQUMonk 提问者
初级学习号
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
2 回答为什么要用while,不可以用if吗?
2 回答为什么同步中用while不用if
4 回答notifyAll()的通知对象包括wait set中的和等待synchronized块的的么?
2 回答run()方法为什么用while循环而不用if
2 回答为什么用 synchronized (lockobject) { if (energyboxs[from] < amount) return;加重系统开销呢?