版权声明:JAVA https://blog.csdn.net/weixin_43190126/article/details/84963354
package com.qyl.maipiao.one5;
public class Amount {
private Integer balance;
public Integer getBalance() {
return balance;
}
public void setBalance(Integer balance) {
this.balance = balance;
}
public synchronized void save(int i) {
System.err.println("======》第"+(i+1)+"次存钱操作!");
System.err.println("存钱之前的余额是 :" + getBalance() + " 本次存钱1000");
// 存钱操作
setBalance(getBalance()+1000);
System.err.println("存钱之后的余额是 :" + getBalance());
}
public synchronized void get(int i) {
System.out.println("======》第"+(i+1)+"次取钱操作!");
System.out.println("取钱之前余额 :"+getBalance()+"本次取钱1000");
//判断账户余额
if (getBalance()>=1000) {
//取钱操作
setBalance(getBalance()-1000);
System.out.println("取钱后还剩:"+getBalance());
}else {
System.out.println("余额不足,穷鬼!");
}
}
}
package com.qyl.maipiao.one5;
public class Save implements Runnable{
private Amount amount;
public Save(Amount amount) {
this.amount = amount;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
amount.save(i);
}
}
}
package com.qyl.maipiao.one5;
public class Get implements Runnable{
private Amount amount;
public Get(Amount amount) {
this.amount = amount;
}
@Override
public void run() {
for (int i = 0; i < 10; i++) {
amount.get(i);
}
}
}
package com.qyl.maipiao.one5;
import org.junit.Test;
public class BankTest {
public static void main(String[] args) throws Exception {
Amount amount = new Amount();
amount.setBalance(0);
Save s = new Save(amount);
Get g = new Get(amount);
new Thread(s).start();
new Thread(g).start();
}
}