线程在wait()之后...

来源:-

HUNO焜

2014-12-23 16:57

54992e250001839305000231.jpg

    这里我假设 线程A 的energyBoxes[from]=50,amount=100,因为50<100,所以肯定会调用wait()方法,当 线程A 被其他线程唤醒后,energyBoxes[from]的值还是50,amount的值还是100吗?如果是,那就是说,线程A会一直卡在这段代码中,不能往下运行的意思吗?

    另外我想问,当线程被唤醒后,线程是从while (energyBoxes[from] < amount) 这段代码开始运行吗 ?

写回答 关注

1回答

  • Arthur
    2014-12-23 21:44:26
    已采纳

    你得理解是正确的,这就是为什么使用了一个while循环来阻挡不符合条件的操作。

    每次被唤醒并获得锁后,都是从wait之后的地方继续循环。

    HUNO焜

    非常感谢!

    2014-12-23 22:17:46

    共 1 条回复 >

深入浅出Java多线程

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

186088 学习 · 464 问题

查看课程

相似问题