通过调用t.start()...逻辑上它调用run方法并显示Child Thread ....但是为什么Main Thread在Child Thread之前首先执行?
class Mythread extends Thread
{
public void run()
{
for(int i=0;i<=5;i++)
{
System.out.println("child thread........");
}
}
}
public class ThreadDemo
{
public static void main(String arg[])
{
Mythread t=new Mythread();
t.start();
for(int i=0;i<=5;i++)
{
System.out.println("main thread........");
}
}
}
答案 0 :(得分:1)
那么,为什么不应该呢?
主线程已在运行,调度程序可能希望让它继续运行。由OS调度程序决定哪个线程运行多长时间。
没有规则,一旦线程产生新线程,线程就应该停止运行。由于创建新线程可能需要一段时间,因此起始线程将停止运行。相反,调度程序可以执行它认为最好的操作。