詳解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)文章
Springboot Thymeleaf實(shí)現(xiàn)HTML屬性設(shè)置
這篇文章主要介紹了Springboot Thymeleaf實(shí)現(xiàn)HTML屬性設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2007-11-11使用監(jiān)聽器對Spring bean id進(jìn)行唯一校驗過程解析
這篇文章主要介紹了使用監(jiān)聽器對Spring bean id進(jìn)行唯一校驗過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08Java數(shù)據(jù)結(jié)構(gòu)順序表從零基礎(chǔ)到精通進(jìn)階
程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要創(chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲區(qū)里,元素間的順序關(guān)系由它們的存儲順序自然表示2022-03-03Java實(shí)現(xiàn)讀取TXT和CSV文件內(nèi)容
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實(shí)現(xiàn)讀取TXT和CSV文件內(nèi)容的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02