/*
需求:银行有一个金库。
有两个储户分离存300元,每次存100,存3次
目标:该程序是不是有安全问题,如果有,如何解决。
如何找问题:
1.明白哪些代码是多线程运行代码
2.明白同享数据
3.明白多线程运行代码中哪些语句是操作同享数据的
*/
class Banka{
private int sum;
public sychronized void add(int n){
sum += n;
try{
Thread.sleep(10);
}
catch(Exception e){
}
System.out.println("sum = "+sum);
}
}
class cus implements Runnable{
private Bank b = new Bank();
public void run(){
for(int x=0;x<3;x++){
b.add(100);
}
}
}
class Bank{
public static void main(String[] args){
Cus c = new Cus();
Thread t1 = new Thread(c);
Thread t2 = new Thread(c);
t1.start();
t2.start();
}
}
/*
需求:银行有一个金库。
有两个储户分离存300元,每次存100,存3次
目标:该程序是不是