gpt4 book ai didi

java - java并发编程问题

转载 作者:行者123 更新时间:2023-11-30 02:43:02 24 4
gpt4 key购买 nike

所以我要弄清楚如何让对象跟踪它们在执行程序服务的每次迭代中获取了多少钻石

public class DwarfMine {

public DwarfMine() {
}

public int diamonds = 100;

public int getDiamonds() {
return diamonds;
}

public synchronized int subtractDiamonds(int howMany) {
diamonds -= howMany;
System.out.println("There are now " + diamonds + " left in the mine!");
return diamonds;
}

}

最佳答案

每个 DwarfMine 实例(sneezydopey)都有自己的锁/互斥锁/监视器,因此可以同步 run 方法上的 不会同步任何内容,因为每个方法都使用不同的“锁”。

我认为如果您为 MineDwarf 提供单独的类,会更容易理解。如果您在 Mine 上有一个 extractDiamonds 方法,您可以在该方法上添加 synchronized 并实现您想要的效果。这是假设您将创建一个 Mine 对象实例,并以某种方式将其传递给您创建的每个 Dwarf 实例...或类似的东西。

关于java - java并发编程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com