91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
濉溪县| 米林县| 罗田县| 南投市| 孝义市| 乌鲁木齐市| 肇庆市| 霍邱县| 栾城县| 鹤壁市| 沂水县| 深水埗区| 分宜县| 宁城县| 古田县| 盈江县| 平罗县| 林口县| 孝感市| 巴南区| 伊通| 泊头市| 大同县| 唐海县| 新巴尔虎右旗| 油尖旺区| 东光县| 包头市| 玛纳斯县| 皋兰县| 根河市| 叶城县| 略阳县| 湄潭县| 鄱阳县| 沧州市| 绥滨县| 六枝特区| 罗定市| 吉安市| 宁陕县|