Runnable 和 Thread 对象的打印顺序

Print Order for Runnable and Thread object

先打印出"main thread",再打印出"child thread"。为什么不先 "child thread" 呢?谁能解释一下?谢谢。

public static void main(String[] args) {
    Thread t = new Thread(new Runnable() {
        public void run() {
            for (int i = 0; i < 10; i++) {
                System.out.println("child thread");
            }
        }
    });

    t.start();

    for (int i = 0; i < 10; i++) {
        System.out.println("main thread");
    }
}

让我解释一下你的代码。

Thread t = new Thread(new Runnable() {
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println("child thread");
        }
    }
});

在这部分中,您将定义一个线程。这只是一个定义,在 t.start() 之前不会发生任何事情。当您的程序到达 t.start() 时,另一个线程将 运行 并且您的应用程序的主线程将继续。可能在线程启动之前,您的主线程将打印多个 "main thread"s,当您的线程到达 System.out.println("child thread"); 时,您将看到两种打印的混合。有关 java 个主题的更多信息,请访问 here