java新手求教!线程基础问题

class A implements Runnable {

public void run() {
for(int i=0; i<50; i++) {
System.out.println("子线程" + i);
}

}

}

public class Test {
public static void main(String args[]) {

A a = new A();
Thread t = new Thread(a);
t.start();

for(int i=0; i<50; i++) {
System.out.println("主线程" + i);
}
}

}
怎么这个线程程序很有规律性的?都是先执行主线程,然后在执行子线程?
而不是互相执行的?
哪里错了??

加上睡眠时间 打印一次睡一秒。打印50次 耗时太短 所以看不出来的追问

就算是打印500次结果也一样啊

追答

呵呵 你小看电脑的速度了。加睡眠是最好的sleep(1000)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-19
不要这样写。将
for(int i=0; i<50; i++) {
System.out.println("主线程" + i);
}
单独写成一个函数,在主方法中调用该函数。否则是顺序执行的。
第2个回答  2012-04-19
这个打印出来完全是随机的,涉及到线程就跟硬件底层有关系了。如果涉及到底层的话,那就比较复杂了,线程在硬件底层是单一的,并且是随机处理的,因为交换线程的速度非常快,所以人是感觉不出来的。所以打印出来的东西一定是随机的,绝对不是固定的一个结果。
第3个回答  2012-04-19
这里就是顺序执行,你debug走下就知道了,估计你想要的是模拟CPU的线程同步。
第4个回答  2012-04-19
你让主线程sleep一下,试试
第5个回答  2012-04-19
有交替执行,但是主程序是肯定限制性的
相似回答