为什么主线程在子线程之前首先执行?

时间:2018-04-02 02:53:16

标签: java multithreading

通过调用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........");
    }
    } 
    }

1 个答案:

答案 0 :(得分:1)

那么,为什么不应该呢?

主线程已在运行,调度程序可能希望让它继续运行。由OS调度程序决定哪个线程运行多长时间。

没有规则,一旦线程产生新线程,线程就应该停止运行。由于创建新线程可能需要一段时间,因此起始线程将停止运行。相反,调度程序可以执行它认为最好的操作。