一、概述
Java中的多線程機制允許多個線程在同一時間執行不同的任務,以提高程序的效率。而join方法是Java多線程提供的一種同步機制,用於控制各個線程之間的執行順序。
二、join 方法的作用
當多個線程並發執行時,可以使用join方法讓某個線程等待另外一個線程的結束。
public void join() throws InterruptedException; public void join(long millis) throws InterruptedException; public void join(long millis, int nanos) throws InterruptedException;
join方法可以帶有參數,線程會等待參數時間後繼續執行,如果參數為0,則表示要等待該線程執行完成;
三、示例代碼
使用線程池執行兩個線程,第二個線程中調用第一個線程的join方法,通過join方法讓第二個線程等第一個線程執行完畢後再執行。
public class JoinDemo { public static void main(String[] args) { ExecutorService executorService = Executors.newFixedThreadPool(2); executorService.submit(new Runnable() { @Override public void run() { System.out.println("線程1開始執行"); try { Thread.sleep(5000L); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("線程1執行完畢"); } }); executorService.submit(new Runnable() { @Override public void run() { System.out.println("線程2開始執行"); try { Thread.sleep(1000L); } catch (InterruptedException e) { e.printStackTrace(); } Thread thread = Thread.currentThread(); try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("線程2執行完畢"); } }); executorService.shutdown(); } }
運行結果:
線程1開始執行 線程2開始執行 線程1執行完畢 線程2執行完畢
四、應用場景
join方法主要應用場景是,需要等待某個線程執行完畢後,才能繼續執行下一步操作,或者需要多個線程協同處理某個任務,而線程之間的執行順序是比較關鍵的。
五、總結
join方法是Java多線程提供的一種同步機制,用於控制各個線程之間的執行順序。可以讓某個線程等待另外一個線程的結束,可以應用於多個線程協同處理某個任務的場景中。在使用中要注意參數的設置,參數為0時,表示要等待該線程執行完成。
原創文章,作者:EBIN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131540.html