问答题
请完成下列Java程序:假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次将50元钱汇入。编写一个程序,模拟实际作业。要求实现2个类,一个是银行类,一个是顾客类。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
Customer2 : sum=50
Customer1 : sum=50
Customer1 : sum=100
Customer2 : sum=100
Customer1 : sum=150
Customer2 : sum=150
class bank{
private static int sum=0;
public static void add(int n,char c){
int tmp=sum;
______;
try {
Thread. sleep( ((int) (2000-500+1)*(Math. random( ) ) ) )+500)
}
catch ( InterruptedException e) { }
sum=tmp;
System. out. println("Customer"+c+":sum="+sum) ;
}
}
class customer extends Thread{
static char flag4_1 =’1’
public void run(){
char myflag4_1,
synchronized(this) {
myflag4_1= flag4_1++;
}
for (int i=1;i<=3;i++)
______;
}
}
public class ex4_1{
public static void main(String args[]) {
customer c1 = new customer( );
customer c2 = new customer( )
c1. start()
c2. start( )
}
}
【参考答案】
tmp=tmp+nbank.add(50,myflag4_1)[解析] 本题主要考查线程的同步和设计简单的类来模拟现实问......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)