需求
多个客户去银行存钱
多个用户去存钱=多个执行任务
银行=共享资源
服务窗口=多个执行路径
代码
public class Main{
public static void main(String[] args){
Bank bank=new Bank();
Consumer c1=new Consumer(bank);
Consumer c2=new Consumer(bank);
Consumer c3=new Consumer(bank);
Thread t1=new Thread(c1);
Thread t2=new Thread(c2);
Thread t3=new Thread(c3);
t1.start();
t2.start();
t3.start();
}
}
class Bank{
private int sum;//共享数据,会产生安全问题
private Object lock = new Object();
/*
public void add(int num){
synchronized(lock){
sum=sum+num;
System.out.println("sum="+sum);
}
}
*/
public synchronized void add(int num){
sum=sum+num;
System.out.println("sum="+sum);
}
}
class Consumer implements Runnable{
Private Bank bank;
public Consumer(Bank bank){
this.bank=bank;
}
@Override
public void run(){
for(int i=0;i<3;i++){
bank.add(100);
}
}
}