public class CopyOfTestSys1 extends Thread {
  Timer t=new Timer();
public static void main(String[] args) {   
 Thread  thread1=new CopyOfTestSys1();
 Thread  thread2=new CopyOfTestSys1();
 thread1.start();
 thread2.start();
}@Override
public void run() {t.add(Thread.currentThread().getName());}
   
}public class Timer {
  private static int number=0;
  //synchronized {};
  public synchronized void  add(String name){
 
 number++;
  try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  System.out.println( number  );} 
  
 
}
更多 0

解决方案 »

  1.   

    其实我想说的是 这为什么会有线程安全的问题   Timer t=new Timer();
    public static void main(String[] args) {  
     Thread  thread1=new CopyOfTestSys1();
     Thread  thread2=new CopyOfTestSys1();
     thread1.start();
     thread2.start();
    这不是new2个对象么那timer不就是2个不同内存中的东西吗。。2个线程不共享啊。
      

  2.   

    用Timer类去实现Runnable接口吧,让后再只创建一个县城对象,里面传出2个Timer对象
      

  3.   

    你这个  根本操作就是  两个  对象,何来 同步。
    public class CopyOfTestSys1 extends Thread {
      private Timer t;
    public CopyOfTestSys1 (Timer t){
    this.t=t;
    }
    public static void main(String[] args) {   
         Timer t=new Timer();
     Thread  thread1=new CopyOfTestSys1(t);
     Thread  thread2=new CopyOfTestSys1(t);
     thread1.start();
     thread2.start();
    }@Override
    public void run() {t.add(Thread.currentThread().getName());}
       
    }public class Timer {
      private static int number=0;
      //synchronized {};
      public synchronized void  add(String name){
     
     number++;
      try {
    Thread.sleep(1);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      System.out.println( number  );} 
      
     
    }就 ok了
      

  4.   

    给你理一理思路,你知道 new CopyOfTestSys1(); 发生什么事情吗? 两次new CopyOfTestSys1(); 各自new 一个Timer实例,两个Timer 实例对应一个静态的number;//以下回答你所问
    synchronized 加在成员方法上,这个锁属于各自的Timer实例,你要访问两个不同的资源,当然不会同步啦。解决:
    把add 加static,但是run的方法要跟着改,不知道跟你的原意是否违背
    楼上的标准方案