多线程安全问题实例

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把锁进行各自的存钱??  是不是在创建个子类吗?!  问题藏着下次来解决!

*/

posted @ 2016-07-23 16:41  对与错  阅读(94)  评论(0编辑  收藏  举报