在Java中,join()
方法是Thread
类的一个方法,它的主要作用是让当前执行线程等待另一个线程完成后再继续执行。
当你调用一个线程的join()
方法时,当前线程会被阻塞,直到被调用join()
方法的线程执行完毕。这样可以确保在继续执行当前线程之前,另一个线程已经完成了它的任务。
例如,假设你有两个线程A和B,你希望线程A在线程B完成后再开始执行。你可以在线程A的代码中调用线程B的join()
方法来实现这个目的:
public class ThreadExample {
public static void main(String[] args) throws InterruptedException {
Thread threadB = new Thread(() -> {
System.out.println("Thread B started");
try {
Thread.sleep(2000); // 模拟线程B需要执行一些操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread B finished");
});
Thread threadA = new Thread(() -> {
System.out.println("Thread A started");
try {
threadB.join(); // 等待线程B完成
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread A finished");
});
threadB.start();
threadA.start();
}
}
在这个例子中,线程A会等待线程B完成后再开始执行。输出结果将会是:
Thread B started
Thread B finished
Thread A started
Thread A finished
请注意,join()
方法可能会抛出InterruptedException
异常,因此需要使用try-catch语句处理这个异常。