银行账户类
public class ThreadTest银行账户 {
private String actno;
private double balance;
public ThreadTest银行账户() {
}
public ThreadTest银行账户(String actno, double balance) {
this.actno = actno;
this.balance = balance;
}
public String getActno() {
return actno;
}
public void setActno(String actno) {
this.actno = actno;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public void withdraw(double money){
synchronized(this){
double before = this.getBalance();
double after = before - money;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.setBalance(after);
}
}
}
测试类
public class ThreadTest银行账户测试 {
public static void main(String[] args) {
ThreadTest银行账户 act = new ThreadTest银行账户("act-001",10000);
Thread t1 = new ThreadTest多线程账户(act);
Thread t2 = new ThreadTest多线程账户(act);
t1.setName("t1");
t2.setName("t2");
t1.start();
t2.start();
}
}