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

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springboot使用線程池方法是什么

發布時間:2021-12-23 16:24:42 來源:億速云 閱讀:166 作者:iii 欄目:開發技術

本篇內容主要講解“springboot使用線程池方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“springboot使用線程池方法是什么”吧!

線程池創建

@Configuration
@EnableAsync
public class TaskPoolConfig {

    @Bean("syncExecutorPool")
    public Executor taskExecutor() {
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        // 核心池大小
        taskExecutor.setCorePoolSize(5);
        // 最大線程數
        taskExecutor.setMaxPoolSize(10);
        // 隊列程度
        taskExecutor.setQueueCapacity(100);
        // 線程空閑時間
        taskExecutor.setKeepAliveSeconds(60);
        // 線程前綴名稱
        taskExecutor.setThreadNamePrefix("syncExecutor--");
        // 該方法用來設置 線程池關閉 的時候 等待 所有任務都完成后,再繼續 銷毀 其他的 Bean,
        // 這樣這些 異步任務 的 銷毀 就會先于 數據庫連接池對象 的銷毀。
        taskExecutor.setWaitForTasksToCompleteOnShutdown(true);
        // 任務的等待時間 如果超過這個時間還沒有銷毀就 強制銷毀,以確保應用最后能夠被關閉,而不是阻塞住。
        taskExecutor.setAwaitTerminationSeconds(60);
        // 線程不夠用時由調用的線程處理該任務
        taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        return taskExecutor;
    }
}

線程池參數

核心線程數量:CorePoolSize
看業務場景設置(我通常設置為CPU核心*1)

最大線程數量:MaxPoolSize
當核心線程數量都在使用狀態時,會調用最大線程數量里的線程,使用的總線程不會超過最大線程數量,其余則等待(我通常設置為CPU核心*2)

隊列程度:QueueCapacity
線程隊列的大小

線程空閑時間:KeepAliveSeconds

線程前綴名稱:ThreadNamePrefix

停機策略:WaitForTasksToCompleteOnShutdown
該方法用來設置 線程池關閉 的時候 等待 所有任務都完成后,再繼續 銷毀 其他的 Bean,這樣這些 異步任務 的 銷毀 就會先于 數據庫連接池對象 的銷毀。

任務的等待時間:AwaitTerminationSeconds
任務的等待時間 如果超過這個時間還沒有銷毀就 強制銷毀,以確保應用最后能夠被關閉,而不是阻塞住

拒接策略:RejectedExecutionHandler
線程不夠用時由調用的線程處理該任務

線程池測試1(核心線程數量)

springboot使用線程池方法是什么

結果:線程池的核心線程數量輪訓執行

線程池測試2(當核心線程數量和最大線程數量不夠時)

隨機睡眠0-10000毫秒
new Random().nextInt(10000)

springboot使用線程池方法是什么

結果:

當5個核心線程數量不夠用時,使用最大線程數量里的線程
當最大線程數量不夠用時,使用主線程執行該任務

// 線程不夠用時由調用的線程處理該任務
taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());

到此,相信大家對“springboot使用線程池方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贵港市| 睢宁县| 江永县| 阿尔山市| 太仆寺旗| 长乐市| 广宗县| 景洪市| 新宁县| 宁河县| 鹰潭市| 娱乐| 宣恩县| 达拉特旗| 新龙县| 河北省| 辉南县| 揭阳市| 琼海市| 芒康县| 陇南市| 嘉义县| 巫溪县| 沁阳市| 香格里拉县| 璧山县| 马山县| 金乡县| 石门县| 万载县| 舒城县| 建昌县| 莫力| 驻马店市| 乌拉特中旗| 金门县| 吐鲁番市| 海丰县| 红桥区| 赫章县| 赣榆县|