【发布时间】:2019-12-23 09:47:41
【问题描述】:
我正在学习 java 并发,并使用了一个多人共享的银行帐户示例来尝试实践并发原理。
这是我的 Account 类。
public class Account(){
private int balance = 0;
public int getBalance(){ return balance}
public synchronized void deposit(int val){//..}
void synchronized void withdrawal(int val){//..}
}
存款和取款方法是同步的,因为它们直接修改Account对象的状态,避免多个用户同时尝试更改时数据损坏。
另一方面,getBalance() 不会更改 Account 对象的状态。但我在想,如果在进行存款或取款时调用getBalance(),它将返回一个过时的值。同步或不同步getBalance() 的标准做法是什么?
【问题讨论】:
-
不确定您期望在这里得到什么样的答案...如果您想确保您确实获得最新值,请使用
synchronized,如果你不在乎。
标签: java concurrency synchronization