设计一个模拟用户从银行取款的应用程序。设某银行账户存款额的初始值为2000元,用线程模拟两个用户分贝从银行取款的情况。两个用户分四次分别从银行的同一账户取款,每次取一百元。
package yuan;
class Mbank{ //模拟银行账户类
private static int sum = 2000; //初始存款额为2000
public static void take(int k) {
int temp = sum;
temp-=k; //变量temp中保存的是每个线程处理的值
try {Thread.sleep((int)(1000*Math.random()));}
catch(InterruptedException e) { }
sum = temp;
System.out.println(“sum=”+sum);
}
}
class Customer2 extends Thread{ //模拟用户取款线程类
public void run() {
for(int i =1;i<=4;i++)
Mbank.take(100);
}
}
public class App11_6 { //调用线程的主类
public static void main(String[] args) {
// TODO Auto-generated method stub
Customer2 c1 = new Customer2();
Customer2 c2 = new Customer2();
c1.start();
c2.start();
}
}
修改上面例题,用线程同步的方法设计用户从银行取款的应用程序。
package yuan;
class M