一个简单的例子:
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