在Java中,join()
方法是Thread
类的一个方法。它用于使当前正在执行的线程等待另一个线程完成(终止)后再继续执行。这样可以确保线程之间的同步和顺序执行。
当你调用一个线程的join()
方法时,当前线程会被阻塞,直到被调用join()
方法的线程执行完毕。一旦目标线程完成执行,当前线程将继续执行。
下面是一个简单的示例:
public class JoinExample {
public static void main(String[] args) throws InterruptedException {
Thread thread1 = new Thread(() -> {
System.out.println("Thread 1 started");
try {
Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread 1 finished");
});
Thread thread2 = new Thread(() -> {
System.out.println("Thread 2 started");
System.out.println("Thread 2 finished");
});
thread1.start();
thread1.join(); // 当前主线程会等待thread1执行完毕
thread2.start();
thread2.join(); // 当前主线程会等待thread2执行完毕
System.out.println("All threads finished");
}
}
在这个示例中,我们创建了两个线程thread1
和thread2
。我们首先启动thread1
,然后调用thread1.join()
,使主线程等待thread1
执行完毕。接着,我们启动thread2
并调用thread2.join()
,使主线程等待thread2
执行完毕。最后,当所有线程都执行完毕时,打印"All threads finished"。