在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"。