class Save2 extends Thread //存款线程
{ private Account1 a1;
private int amount;
public Save2(Account1 a1,int amount)
{ this.a1 = a1;
this.amount = amount;
}
public void run()
{ synchronized (a1) //锁定帐户对象
{ int k = a1.howmatch();
try
{ sleep(1); //花费时间
}
catch(InterruptedException e)
{ System.out.println(e);
}
a1.put(amount);
System.out.println("现有"+k+",存入"+amount+
",余额"+a1.howmatch());
}
}
public static void main (String args[])
{ Account1 a1 = new Account1();
(new Save2(a1,100)).start();
(new Save2(a1,200)).start();
(new Fetch2(a1,500)).start();
}
}
class Fetch2 extends Thread //取款线程
{ private Account1 a1;
private int amount;
public Fetch2(Account1 a1,int amount)
{ this.a1 = a1 ;
this.amount = amount;
}
public void run()
{ synchronized (a1) //锁定帐户对象
{ int k = a1.howmatch();
try
{ sleep(1); //花费时间
}
catch(InterruptedException e)
{ System.out.println(e);
}
System.out.println("现有"+k+",取走"+a1.get(amount)+
",余额"+a1.howmatch());
}
}
}
D:\myjava>javac Save2.java
D:\myjava>java Save2
现有0,存入100,余额100
现有100,存入200,余额300
现有300,取走300,余额0