问题描述:100个线程同时向一个银行账户存入1元钱。
1:使用同步机制
银行账户类:
/**
* 银行账户类
* 演示100个线程同时向一个银行账户存入1元钱
* 未使用同步机制
*/
public class Account {
// 账户余额
private double balance;
/**
* 存款
* @param money : 存入金额
*/
public synchronized void deposit(double money) {
double newBalance = balance + money;
try {
Thread.sleep(10); // 模拟此业务需要一段处理时间
} catch (InterruptedException e) {
e.printStackTrace();
}
balance = newBalance;
}
/**
* 获得账户余额
* @return : 账户余额
*/
public double getBalance() {
return balance;
}
}
存钱线程:
/**
* 存钱线程
*/
public class AddMoneyThread implements Runnable{
// 存入账户
// 方法一
private Account account;
// 方法二
// private Account02 account;
// 存入金额
private double money;
public AddM