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

溫馨提示×

java newfixedthreadpool如何配置

小樊
84
2024-11-26 14:55:25
欄目: 編程語言

newFixedThreadPool 是 Java 中 ExecutorService 接口的一個實現,它創建了一個固定大小的線程池。要配置 newFixedThreadPool,你需要設置以下參數:

  1. 核心線程數(corePoolSize):這是線程池中始終保持活躍的線程數量。即使這些線程處于空閑狀態,也不會被終止。如果任務數量超過了核心線程數,那么將會創建新的工作線程來處理任務。

  2. 最大線程數(maximumPoolSize):這是線程池中允許的最大線程數量。當任務數量超過了核心線程數,并且所有核心線程都在忙碌時,線程池會創建新的工作線程,直到達到最大線程數。

  3. 任務隊列(workQueue):這是一個用于存儲等待執行的任務的隊列。當線程池中的線程完成任務后,新提交的任務會被添加到任務隊列中。如果任務隊列已滿,且線程池中的線程都在忙碌,那么線程池會根據拒絕策略(RejectedExecutionHandler)處理無法執行的任務。

  4. 線程工廠(ThreadFactory):這是一個用于創建新線程的工廠。你可以使用自定義的線程工廠來設置線程的名稱、優先級等屬性。

  5. 拒絕策略(RejectedExecutionHandler):當任務隊列已滿,且線程池中的線程都在忙碌時,線程池會根據拒絕策略處理無法執行的任務。Java 提供了四種內置的拒絕策略:

    • AbortPolicy(默認策略):直接拋出 RejectedExecutionException 異常。
    • CallerRunsPolicy:在調用者線程中執行被拒絕的任務。
    • DiscardPolicy:直接丟棄被拒絕的任務,不拋出異常。
    • DiscardOldestPolicy:丟棄隊列中最舊的任務,然后嘗試重新提交被拒絕的任務。

下面是一個使用 newFixedThreadPool 的示例:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class FixedThreadPoolExample {
    public static void main(String[] args) {
        int corePoolSize = 5;
        int maximumPoolSize = 10;
        long keepAliveTime = 60L;
        TimeUnit unit = TimeUnit.SECONDS;
        BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(20);
        ThreadFactory threadFactory = Executors.defaultThreadFactory();
        RejectedExecutionHandler rejectedExecutionHandler = new ThreadPoolExecutor.CallerRunsPolicy();

        ExecutorService executorService = Executors.newFixedThreadPool(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, rejectedExecutionHandler);

        // 提交任務到線程池
        for (int i = 0; i < 30; i++) {
            executorService.submit(() -> {
                System.out.println("Task executed by thread: " + Thread.currentThread().getName());
            });
        }

        // 關閉線程池
        executorService.shutdown();
    }
}

在這個示例中,我們創建了一個固定大小為 5 的線程池,最大線程數為 10,空閑線程在 60 秒后會被終止。任務隊列的容量為 20,使用默認的線程工廠和調用者運行策略作為拒絕策略。

0
岑溪市| 巴南区| 若羌县| 冀州市| 长兴县| 三明市| 扬州市| 鸡泽县| 彭阳县| 上饶县| 土默特左旗| 碌曲县| 平和县| 广平县| 都昌县| 乐昌市| 天镇县| 驻马店市| 赣榆县| 琼结县| 开鲁县| 麻栗坡县| 临夏市| 和硕县| 屏边| 霍城县| 山阳县| 祁连县| 浦北县| 莱西市| 饶河县| 巩留县| 光山县| 清水河县| 花莲县| 桂平市| 交城县| 陇西县| 鄂伦春自治旗| 长子县| 嘉兴市|