在Java中,主线程和子线程是并发执行的,它们之间并没有直接的依赖关系。当子线程启动后,主线程会继续执行自己的任务,而不会等待子线程结束。因此,当子线程执行完毕后,主线程并不会自动切换回来继续执行,除非主线程的任务已经全部完成,才会结束程序的执行。

如果你希望在子线程执行完毕后继续执行主线程,可以使用join()方法。join()方法的作用是让当前线程等待调用join()方法的线程执行完毕后再继续执行。例如,可以在主线程中调用子线程的join()方法,这样主线程会等待子线程执行完毕后再继续执行。

示例代码如下:

public class MainThread {
    public static void main(String[] args) {
        Thread thread = new Thread(new MyRunnable());
        thread.start();
        
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("主线程执行完毕");
    }
}

class MyRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("子线程开始执行");
        
        try {
            Thread.sleep(3000); // 模拟子线程执行耗时操作
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("子线程执行完毕");
    }
}

运行上述代码,输出结果为:

子线程开始执行
子线程执行完毕
主线程执行完毕

可以看到,主线程在子线程执行完毕后才继续执行

java 子线程启动结束后为什么不在走主线程了

原文地址: https://www.cveoy.top/t/topic/iwj1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录