问答详情
源自:4-3 Java线程交互之互斥与同步:守恒的能量

为什么我按照视频里的代码设置了锁机制,还是能量不守恒

synchronized (lockObject) {
    while (energy > energyBoxes[from]) {
        try {
            lockObject.wait();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    System.out.println(Thread.currentThread().getName());
    energyBoxes[from] -= energy;
    System.out.printf("从%d转移了%10.2f单位能量到%d%n", from, energy, to);
    energyBoxes[to] += energy;
    System.out.printf("能量总和为%10.2f%n", getTotalEnergies());
    lockObject.notifyAll();
}

http://img1.mukewang.com/6239602200019f2620141239.jpg

提问者:追梦赤子心RyanB 2022-03-22 13:32

个回答