在Java中,join()方法用于让一个线程等待另一个线程完成其执行。当一个线程调用另一个线程的join()方法时,它会暂时挂起自己的执行,直到被调用的线程执行完成。
join()方法有两种重载形式:
- join():让当前线程等待被调用线程执行完成。
- join(long millis):让当前线程等待被调用线程执行完成,最多等待millis毫秒,如果超过这个时间还没有执行完成,则当前线程继续执行。
示例代码:
Thread t1 = new Thread(() -> { for (int i = 0; i < 5; i++) { System.out.println("Thread 1: " + i); } }); Thread t2 = new Thread(() -> { for (int i = 0; i < 5; i++) { System.out.println("Thread 2: " + i); } }); t1.start(); t2.start(); try { t1.join(); // 让主线程等待t1执行完成 t2.join(); // 让主线程等待t2执行完成 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("All threads have finished.");
在上面的示例中,主线程会等待t1和t2线程执行完成后才会输出"All threads have finished."。