设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。   
  以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。   
  public   class   ThreadTest1{   
      private   int   j;   
      public   static   void   main(String   args[]){   
  ThreadTest1   tt=new   ThreadTest1();   
  Inc   inc=tt.new   Inc();   
  Dec   dec=tt.new   Dec();   
  for(int   i=0;i<2;i++){   
  Thread   t=new   Thread(inc);   
  t.start();   
  t=new   Thread(dec);   
  t.start();   
  }   
  }   
      private   synchronized   void   inc(){   
  j++;   
  System.out.println(Thread.currentThread().getName()+"-inc:"+j);   
      }   
      private   synchronized   void   dec(){   
  j--;   
  System.out.println(Thread.currentThread().getName()+"-dec:"+j);   
      }   
      class   Inc   implements   Runnable{   
  public   void   run(){   
  for(int   i=0;i<100;i++){   
  inc();   
  }   
  }   
      }   
      class   Dec   implements   Runnable{   
  public   void   run(){   
  for(int   i=0;i<100;i++){   
  dec();   
  }   
    }   
      }   
  }   
那个设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。   
  以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。   
  public   class   ThreadTest1{   
      private   int   j;   
      public   static   void   main(String   args[]){   
  ThreadTest1   tt=new   ThreadTest1();   
  Inc   inc=tt.new   Inc();   
  Dec   dec=tt.new   Dec();   
  for(int   i=0;i<2;i++){   
  Thread   t=new   Thread(inc);   
  t.start();   
  t=new   Thread(dec);   
  t.start();   
  }   
  }   
      private   synchronized   void   inc(){   
  j++;   
  System.out.println(Thread.currentThread().getName()+"-inc:"+j);   
      }   
      private   synchronized   void   dec(){   
  j--;   
  System.out.println(Thread.currentThread().getName()+"-dec:"+j);   
      }   
      class   Inc   implements   Runnable{   
  public   void   run(){   
  for(int   i=0;i<100;i++){   
  inc();   
  }   
  }   
      }   
      class   Dec   implements   Runnable{   
  public   void   run(){   
  for(int   i=0;i<100;i++){   
  dec();   
  }   
    }   
      }   
  }   
那个thread对象t为什么可以被付值为不同的线程,下一次付值不是把上一次的覆盖了吗?那上一个线程为什么不消失呢?