gpt4 book ai didi

java同步银行转账

转载 作者:行者123 更新时间:2023-12-01 15:13:29 26 4
gpt4 key购买 nike

我尝试为 BankAccount 转账的经典问题编写同步代码。现在我正在尝试找出解决方案的问题。在我在网上找到的任何解决方案中,传输方法都使用两个锁,但我没有使用任何一个。

    class BankAccount
{
double balance;

public void synchronized deposit(double amount)
{
balance+=amount;
}

public void synchronized withdraw(double amount)
{
balance-=amount;
}

public void transferTo(BankAccount b, double amount)
{
this.withdraw(amount);
b.deposit(amount);

}
}

请告诉我 transferTo() 可能存在什么问题。请原谅省略余额的限制检查。我实际上担心不使transferTo原子化是否会导致问题(死锁)。这种情况的一个例子就很好了。

最佳答案

除了使用 double 之外,我没有看到任何特殊问题,但您必须记住,transferTo 不是原子的可能会在以后引起问题。然而,您实际上正在使用锁。每个同步方法都隐式使用锁。

关于java同步银行转账,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980891/

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