一、概述
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-hant/n/131540.html
微信掃一掃
支付寶掃一掃