多线程安全问题实例
class Bank{
private int sum;
void add(int num){
sum=sum+num;
System.out.println(Thread.currentThread().getName()+"当前存了"+sum);
}
}
class Deposit implements Runnable{
private Bank b=new Bank();
private Object obj=new Object();
public void run(){
synchronized(obj){
for(int i=1;i<=3;i++){
b.add(100);
}
}
}
}
public class text31{
public static void main(String[] args){
Deposit d=new Deposit();
Thread t1=new Thread(d,"小明");
Thread t2=new Thread(d,"校长");
t1.start();
t2.start();
}
}
/*
思考 这个银行存钱的话,是一个人一个账户,那么能不能开辟2个线程,然后上2把锁进行各自的存钱?? 是不是在创建个子类吗?! 问题藏着下次来解决!
*/