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();
}
}
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();
}
}
其原因可能在于
第一,那两行代码根本用不完一个CPU的时间片就可以执行完毕,所以出现问题的情况太难碰到了。
第二,那两行代码的执行时间远远小于系统创建并启动一个新线程的时间,所以下一个线程被创建好之前,人家可能早就结束了大半天了,导致想看看出问题的情况就更难了。