While(energy[from]<amount){lockObj.wait()}

来源:4-4 Java线程交互之深入剖析互斥与同步

笙__笙

2017-11-22 15:00

这里为什么用while循环 有什么作用

写回答 关注

5回答

  • 阿Dine
    2018-07-31 11:00:34

    你尝试一下把while改成if 还是守恒的

    阿Dine

    老师解释了一下 是因为 //被唤醒的线程会从上一次调用wait()的地方之后开始执行 我们仍需要重复判断

    2018-07-31 11:15:16

    共 1 条回复 >

  • 攻城湿123
    2018-07-02 17:56:36

    應爲他這樣寫不是表示只有一個線程獲得了鎖進入了下面的代碼,while說明有很多線程進入來判斷是否滿足條件

  • 慕九州9042237
    2017-11-22 19:33:02

    是一个 持续 很长时间,多次询问的  过程。所以需要 while

    笙__笙

    很难理解

    2017-11-22 19:34:43

    共 1 条回复 >

  • 笙__笙
    2017-11-22 19:22:37

    为什么不用 if

  • 慕九州9042237
    2017-11-22 19:21:01

    能量不守恒 即  energy[from]<amount    说明 没有资源。

    需要等待 有可用资源的 时候 才能执行下面的 业务逻辑


    笙__笙

    为什么不用 if

    2017-11-22 19:23:02

    共 1 条回复 >

深入浅出Java多线程

带你一起深入浅出多线程,掌握基础,展望进阶路线

186078 学习 · 464 问题

查看课程

相似问题