D:\>java ma
Thread-0 1
Thread-1 1
Thread-2 1
Thread-3 1
Thread-4 1
Thread-5 1
Thread-0 2
Thread-1 2
Thread-2 2
Thread-3 2
Thread-4 2
Thread-5 2
Thread-0 3
Thread-1 3
Thread-2 3
Thread-3 3
Thread-4 3
Thread-5 3
Thread-0 4
Thread-1 4
Thread-2 4
Thread-3 4
Thread-4 4
Thread-5 4
Thread-0 5
Thread-1 5
Thread-2 5
Thread-3 5
Thread-4 5
Thread-5 5
Thread-0 6
Thread-1 6
Thread-2 6
Thread-3 6
Thread-4 6
Thread-5 6
Thread-0 7
Thread-1 7
Thread-2 7
Thread-3 7
Thread-4 7
Thread-5 7
Thread-0 8
Thread-1 8
Thread-2 8
Thread-3 8
Thread-4 8
Thread-5 8
Thread-0 9
Thread-1 9
Thread-2 9
Thread-3 9
Thread-4 9
Thread-5 9
Thread-0 10
Thread-1 10
Thread-2 10
Thread-3 10
Thread-4 10
Thread-5 10
没有什么不妥啊!~~

解决方案 »

  1.   

    你把int i变成static int i看看结果
      

  2.   

    大家可能还没有明白我的意思!
    我本来的意思是想通过多个线程来让i值不断++,我想执行的结果1,2,3,4,5,6,7,8,9,10,11,12,13
    我写这个程序就是想让sychronized来很好的保护代码,而不受线程的骚扰。
    希望我没有误导大家。
      

  3.   

    你定义的i每个线程都是独立的,怎么可能互相干扰,只有定义成static才能公用i,从而实现同步
      

  4.   

    我要是把i声明成static的话,用jbuilder 9.0执行的结果:
    Thread-1 6Thread-2 7Thread-3 8Thread-4 9Thread-5 10Thread-6 11Thread-1 12Thread-2 13Thread-3 14Thread-4 15Thread-5 16Thread-6 17Thread-1 18Thread-2 19Thread-3 20Thread-4 21Thread-5 22
      

  5.   

    呵呵调用任何synchronized方法时,对象会被锁定,(注意是对象),不可以再调用那个对象的其他任何synchronized方法所以就 .......你试试 创建你的类的对象,然后通过多个线程来调用它的同步方法,