在 Java 多线程编程中,我们经常需要让主线程等待子线程执行完成,才能继续执行后续操作。常用的方法是使用 join() 方法。

join() 方法会阻塞当前线程(主线程),直到被调用的线程(子线程)执行完毕。

示例:

class MyThread extends Thread {
    @Override
    public void run() {
        // 子线程执行的代码
        System.out.println("子线程执行完毕");
    }
}

public class Main {
    public static void main(String[] args) throws InterruptedException {
        MyThread thread = new MyThread();
        thread.start();
        thread.join(); // 主线程等待子线程执行完成
        System.out.println("主线程继续执行");
    }
}

解释:

  1. 创建一个子线程 MyThread,并启动它。
  2. 主线程调用 thread.join() 方法,阻塞自身,等待 MyThread 执行完成。
  3. 当 MyThread 执行完毕后,主线程才继续执行 System.out.println("主线程继续执行");。

其他方法:

除了 join() 方法外,还可以使用其他方法实现类似的效果:

  • isAlive() 方法可以判断子线程是否处于活动状态,但无法阻塞主线程。
  • sleep() 方法可以使主线程休眠一段时间,但无法保证子线程执行完成。
  • interrupt() 方法可以中断子线程,但无法保证子线程立即停止执行。

总结:

join() 方法是让主线程等待子线程执行完成的最佳选择,因为它能够保证子线程执行完毕后,主线程才能继续执行。

Java 多线程:如何让主线程等待子线程完成?

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

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