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

溫馨提示×

java threadpoolexecutor如何處理異常

小樊
81
2024-11-16 23:48:55
欄目: 編程語言

在Java中,ThreadPoolExecutor類本身并不直接處理異常。當你在ThreadPoolExecutor中執行任務時,如果任務拋出異常,那么這個異常將被傳遞給Future.get()方法,當調用這個方法時,它會拋出ExecutionException。要處理這個異常,你需要捕獲并處理它。

以下是一個簡單的示例,展示了如何在ThreadPoolExecutor中處理異常:

import java.util.concurrent.*;

public class ThreadPoolExecutorExample {
    public static void main(String[] args) {
        int corePoolSize = 2;
        int maximumPoolSize = 4;
        long keepAliveTime = 60L;
        TimeUnit unit = TimeUnit.SECONDS;
        BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(10);
        ThreadPoolExecutor executor = new ThreadPoolExecutor(
                corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);

        for (int i = 0; i < 10; i++) {
            int finalI = i;
            executor.submit(() -> {
                try {
                    System.out.println("Executing task " + finalI);
                    if (finalI == 5) {
                        throw new RuntimeException("Task " + finalI + " failed");
                    }
                } catch (Exception e) {
                    System.out.println("Task " + finalI + " encountered an exception: " + e.getMessage());
                }
            });
        }

        executor.shutdown();
    }
}

在這個示例中,我們創建了一個ThreadPoolExecutor,并提交了10個任務。其中一個任務(任務5)會拋出一個異常。當我們調用Future.get()方法時,它會拋出ExecutionException,我們可以捕獲并處理這個異常。在這個例子中,我們只是打印出異常的消息。

注意,為了避免程序終止,你應該始終在可能拋出異常的代碼塊周圍使用try-catch語句,或者在調用Future.get()時使用try-catch語句。

0
阿城市| 拜泉县| 大关县| 十堰市| 凤庆县| 根河市| 新干县| 综艺| 新安县| 法库县| 玛纳斯县| 灵璧县| 徐州市| 绿春县| 阿拉善左旗| 梁平县| 英超| 金昌市| 广东省| 申扎县| 崇礼县| 凤台县| 延吉市| 泰安市| 来凤县| 潜江市| 海林市| 舞钢市| 射阳县| 新昌县| 无为县| 和林格尔县| 翁牛特旗| 哈密市| 亳州市| 中宁县| 常熟市| 金昌市| 将乐县| 玉溪市| 克山县|