需求:
男生和女生处了一年分手了,共同资产有10000元,两人约定去银行不停取钱直到钱全部取完,取钱每次只能取2000元,每次取完要显示余额。
男生拿存折取钱,女生拿着银行卡取钱,用java中的多线程进行模拟,要解决线程的安全问题。
源码:
public class AccountDemo extends Thread{
static int account = 10000;//设置账户余额为10000
private String sex;
public String getSex() {
return sex;
}
public AccountDemo(String way, String sex) {
super(way);
this.sex = sex;
}
@Override
public void run() {
while(true){
synchronized ("") {
if (account > 0) {
account -= 2000;
System.out.println(getSex() +"已成功使用" + this.getName() + "取出2000元,当前账号余额:" + account);
} else {
System.out.println(getSex() + "取款失败,当前账户余额为0");
break;
}
}
}
}
public static void main(String[] args) {
AccountDemo ad1 = new AccountDemo("存折", "男生");
AccountDemo ad2 = new AccountDemo("银行卡", "女生");
ad1.start();
ad2.start();
}
}