Java 一旦子线程完成执行,它会继续执行主线程行吗?

Java 一旦子线程完成执行,它会继续执行主线程行吗?,java,multithreading,Java,Multithreading,我正在尝试在主线程中创建一个子线程,如下所示 public class test { public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.pri

我正在尝试在主线程中创建一个子线程,如下所示

public class test {
    public static void main(String[] args) throws InterruptedException {

        Thread t1 = new Thread(new Runnable() {

            @Override
            public void run() {
                System.out.println("In normal child thread " + Thread.currentThread().getName());

            }
        });
        t1.start();
        System.out.println("main thread sleeping for 5 seconds : " + Thread.currentThread().getName());
        Thread.sleep(5000);
        System.out.println("In main thread : " + Thread.currentThread().getName());
        System.out.println("exiting main thread : " + Thread.currentThread().getName());
    }

}
在上面的例子中,我让主线程休眠了5秒钟。因此,一旦子线程完成其sysout语句的打印,我希望下面的行执行两次,

System.out.println("In main thread : " + Thread.currentThread().getName());
System.out.println("exiting main thread : " + Thread.currentThread().getName());
但是当我执行程序时,我只看到这些行被执行一次


如果我的期望是正确的,请告诉我我希望主线程应该执行这些sysout语句两次。

这里我们运行两个线程:主线程和子线程。当我们为子线程()调用start()方法时,将执行run()方法中的逻辑。 此子线程将在执行其run方法时死亡。
主线程继续执行剩余的代码。

子线程只执行其
run()方法中的内容。
您对实际执行的线程有很大的误解。“子”线程执行分配给它的任何内容,这是Java中
run()
中的每个代码。抱歉,我编辑了这个问题。子线程将只执行run()中提到的内容。我试图理解的是,当子线程完成执行时,控件将到达哪里@vinodhy它将终止。@vinodhy可能是您使用了系统调用?但这是一个完全不同的故事…什么是“控制将再次进入主线程”的意思?我有点错过了一点,你没有足够的声誉来评论。请编辑你的答案以澄清那句话。在目前的状态下,它只是令人困惑,它背后的想法可能是错误的。@bhavya。。请解释更多以帮助我们理解。如果您能提供更多信息,我们可以得出合理的结论。