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

溫馨提示×

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
湖口县| 兴国县| 莲花县| 红河县| 江口县| 惠水县| 邵武市| 丰县| 兰坪| 象州县| 鞍山市| 叙永县| 大丰市| 广南县| 桦甸市| 清丰县| 孝义市| 垦利县| 凯里市| 沙雅县| 新疆| 商河县| 永寿县| 彩票| 哈巴河县| 资讯| 金秀| 定结县| 渭源县| 贡嘎县| 吉安县| 额尔古纳市| 台东县| 习水县| 东山县| 互助| 登封市| 长子县| 康马县| 固镇县| 湘阴县|