gpt4 book ai didi

java - ATM如何在并发环境下工作

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:26 27 4
gpt4 key购买 nike

一个简单的例子:

      class Account{
private String account_name;
private String password;
private double balance;

public synchronized double getBalance(){
return balance;
}
public synchronized void setBalance(double add){
balance += add;
}
}

根据我的理解,获取与对象关联的锁不会阻止其他线程访问该对象。它们必须是同一把锁以防止访问。

因此,如果两个人尝试在不同的 ATM 上访问同一个帐户,那么它将创建此 Account 对象的两个不同实例,对吗?那么它就不会受到同一把锁的保护,对吧?

假设 A(线程 A)试图将钱存入帐户,而同时 B(线程 B)试图获取帐户的总余额。

它是如何工作的?他们是否在使用时缓存 Account,以便在下一个请求到来时返回相同的 Account 对象?

最佳答案

同步方法将锁定对象实例。但是,如果有一个方法,可能会发生不同步的并发访问。

ATM 机不访问您的帐户 - 银行服务器访问。 ATM 机只是一个客户端。因此,从 2 台不同的 ATM 访问同一个帐户将受到银行服务器的保护,银行服务器的内存/数据库中只有该帐户的一个实例(可能受某种锁定机制保护,而不是用 Java 编写)。

关于java - ATM如何在并发环境下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236897/

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