詳解Java線程池的增長過程
通過ThreadPoolExecutor的方式創(chuàng)建線程池
ThreadPoolExecutor 構(gòu)造方法:
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) {
//code...
}
參數(shù)的意義:
- 1.corePoolSize 指定了線程池里的線程數(shù)量,核心線程池大小
- 2.maximumPoolSize 指定了線程池里的最大線程數(shù)量
- 3.keepAliveTime 當(dāng)線程池線程數(shù)量大于corePoolSize時候,多出來的空閑線程,多長時間會被銷毀。
- 4.unit 時間單位
- 5.workQueue 任務(wù)隊列,用于存放提交但是尚未被執(zhí)行的任務(wù)。
- 6.threadFactory 線程工廠,用于創(chuàng)建線程,一般可以用默認(rèn)的
- 7.handler 拒絕策略,當(dāng)任務(wù)過多時候,如何拒絕任務(wù)。當(dāng)提交任務(wù)數(shù)超過maximumPoolSize + workQueue 的size之和,任務(wù)交給RejectedExecutionHandler 處理
線程池的增長
線程池的增長與創(chuàng)建自定義線程池時設(shè)置的參數(shù)密切相關(guān),重點(diǎn)講解比較容易讓人誤解的 corePoolsize, maximumPoolsize, workQueue之 間關(guān)系。
先看一張圖,理解一下增長過程

相關(guān)文章
MybatisPlus使用Mybatis的XML的動態(tài)SQL的功能實現(xiàn)多表查詢
本文主要介紹了MybatisPlus使用Mybatis的XML的動態(tài)SQL的功能實現(xiàn)多表查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
在SpringBoot中使用UniHttp簡化天地圖路徑規(guī)劃調(diào)用實踐記錄(場景分析)
本文介紹了如何在SpringBoot項目中使用UniHttp簡化天地圖路徑規(guī)劃接口的調(diào)用,通過一個具體的例子展示了如何根據(jù)中文地址獲取經(jīng)緯度坐標(biāo),并使用UniHttp調(diào)用天地圖路徑規(guī)劃服務(wù),感興趣的朋友一起看看吧2025-02-02
詳解Spring學(xué)習(xí)之編程式事務(wù)管理
本篇文章主要介紹了詳解Spring學(xué)習(xí)之編程式事務(wù)管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
關(guān)于Jmeter接口測試實戰(zhàn)-Cookies
這篇文章主要介紹了關(guān)于Jmeter接口測試實戰(zhàn)-Cookies問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
Linux環(huán)境卸載Centos7自帶的OpenJDK和安裝JDK1.8圖文教程
CentOS系統(tǒng)是開發(fā)者常用的Linux操作系統(tǒng),安裝它時會默認(rèn)安裝自帶的舊版本的OpenJDK,但在開發(fā)者平時開發(fā)Java項目時還是需要完整的JDK,這篇文章主要給大家介紹了關(guān)于Linux環(huán)境卸載Centos7自帶的OpenJDK和安裝JDK1.8的相關(guān)資料,需要的朋友可以參考下2024-07-07
springboot使用注解實現(xiàn)鑒權(quán)功能
這篇文章主要介紹了springboot使用注解實現(xiàn)鑒權(quán)功能,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-12-12

