java 子线程启动结束后为什么不在走主线程了
在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("子线程执行完毕");
}
}
运行上述代码,输出结果为:
子线程开始执行
子线程执行完毕
主线程执行完毕
可以看到,主线程在子线程执行完毕后才继续执行
原文地址: https://www.cveoy.top/t/topic/iwj1 著作权归作者所有。请勿转载和采集!