class ThreadTest1 implements Runnable { int i = 0; public void run() { ++i;
System.out.println(i); }
}class www {
public static void main(String[] args) {
ThreadTest1 t = new ThreadTest1();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}

解决方案 »

  1.   

    也算是种巧合吧,我觉得。
    其原因可能在于
    第一,那两行代码根本用不完一个CPU的时间片就可以执行完毕,所以出现问题的情况太难碰到了。
    第二,那两行代码的执行时间远远小于系统创建并启动一个新线程的时间,所以下一个线程被创建好之前,人家可能早就结束了大半天了,导致想看看出问题的情况就更难了。
      

  2.   

    int i = 0;改成Integer就可以看到效果了