亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java怎么判斷線程池是否執行完畢

小億
155
2023-08-20 03:36:47
欄目: 編程語言

在Java中,可以使用ExecutorService來創建線程池,然后利用isTerminated()方法來判斷線程池是否執行完畢。

下面是一個示例代碼:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
// 創建線程池
ExecutorService executor = Executors.newFixedThreadPool(3);
// 提交任務
for (int i = 0; i < 5; i++) {
executor.submit(new Task(i));
}
// 關閉線程池
executor.shutdown();
// 等待所有任務執行完畢
try {
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 判斷線程池是否執行完畢
if (executor.isTerminated()) {
System.out.println("線程池執行完畢");
} else {
System.out.println("線程池還在執行中");
}
}
static class Task implements Runnable {
private int id;
public Task(int id) {
this.id = id;
}
@Override
public void run() {
System.out.println("任務 " + id + " 正在執行");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("任務 " + id + " 執行完畢");
}
}
}

在上面的示例中,我們創建了一個固定大小為3的線程池,并提交了5個任務。然后使用awaitTermination()方法等待所有任務執行完畢,并使用isTerminated()方法判斷線程池是否執行完畢。

運行示例代碼,輸出結果為:

任務 0 正在執行
任務 1 正在執行
任務 2 正在執行
任務 0 執行完畢
任務 3 正在執行
任務 1 執行完畢
任務 4 正在執行
任務 2 執行完畢
任務 3 執行完畢
任務 4 執行完畢
線程池執行完畢

可以看到,當所有任務執行完畢后,輸出了"線程池執行完畢"的提示。

0
鲁甸县| 临夏县| 石楼县| 于田县| 榆社县| 涞水县| 武清区| 囊谦县| 耒阳市| 德兴市| 教育| 宽城| 正阳县| 调兵山市| 香格里拉县| 城固县| 阳山县| 金沙县| 宁武县| 云和县| 京山县| 伊川县| 西华县| 襄樊市| 永川市| 临清市| 台中县| 新和县| 中山市| 金湖县| 皮山县| 洞口县| 阿鲁科尔沁旗| 文成县| 长白| 鄄城县| 外汇| 唐河县| 霍城县| 进贤县| 棋牌|