日期:2014-05-19  浏览次数:20764 次

java多线程遇到的奇怪问题
public class TestThread1 {
public static void main(String args[]) {
Runner1 r = new Runner1();
Thread t =new Thread(r);
t.start();

for(int i=0; i<100; i++) {
System.out.println("Main Thread:------" + i);
}
}
}

class Runner1 implements Runnable {
public void run() {
for(int i=0; i<100; i++){
System.out.println("Runner1:" + i);
}
}
}
去掉主程序输出中的 + i 线程不再交替执行
不知道为什么,求解释

------解决方案--------------------
探讨
我把for改成10000,有“+i”试试5次,交替很明显,去掉之后,除了中间略微闪了几下(不知是不是线程执行),剩下的就是主线程执行完,另一个才执行。
这两个对比说明这根电脑的运行速度应该没有关系吧。
还有一点要声明:我是在DOS下执行的