子线程完成执行后,会继续执行主线程行吗?

时间:2020-05-30 12:57:01

标签: 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.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语句。

1 个答案:

答案 0 :(得分:0)

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

相关问题