最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java線程池的增長過程

 更新時間:2019年08月06日 16:14:36   作者:為何不是夢  
在本篇文章里小編給大家整理的是關(guān)于Java線程池的增長過程以及相關(guān)知識點,需要的朋友們可以參考下。

通過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),重點講解比較容易讓人誤解的 corePoolsize, maximumPoolsize, workQueue之 間關(guān)系。

先看一張圖,理解一下增長過程

當(dāng)線程池小于corePoolsize時,新提交的任務(wù)將創(chuàng)建一個新的線程執(zhí)行任務(wù),即使此時線程池中存在空閑線程。當(dāng)線程池達(dá)到corePoolSize時,新提交的任務(wù)將被放入workQueue中,等待線程池中任務(wù)調(diào)度執(zhí)行當(dāng)workQueue已滿,且線程池<maximumPoolSize 時, 新提交任務(wù)會創(chuàng)建新線程執(zhí)行任務(wù)當(dāng)提交任務(wù)數(shù)超過 maximumPoolSize 時,新提交任務(wù)由RejectedExecutionHandlier處理另外需要特別注意的是,當(dāng)線程池中超過corePoolSize線程,空閑時間達(dá)到keepAliveTime時,將會關(guān)閉空閑線程。當(dāng)設(shè)置allowCoreThreadTimeOut(true)時,線程池中corePoolSize線程空閑時間達(dá)到keepAliveTime也將關(guān)閉
當(dāng)一個任務(wù)通過execute( Runnable)方法欲添加到線程池時:
如果此時線程池中的數(shù)量小于corePoolSize,即使線程池中的線程都處于空閑狀態(tài),也要創(chuàng)建新的線程來處理被添加的任務(wù)。如果此時線程池中的數(shù)量等于corePoolSize,但是緩沖隊列workQueue未滿,那么任務(wù)被放入緩沖隊列。如果此時線程池中的數(shù)量大于corePoolSize,緩沖隊列workQueue滿,并且線程池中的數(shù)量小于maximumPoolSize,建新的線程來處理被添加的任務(wù)。 如果此時線程池中的數(shù)量大于corePoolSize,緩沖隊列workQueue滿,并且線程池中的數(shù)量等于maximumPoolSize,那么通過handler所指定的策略來處理此任務(wù)。也就是:處理任務(wù)的優(yōu)先級為:核心線程corePoolSize、 任務(wù)隊列workQueue、 最大線程maximumPoolSize, 如果三者都滿了,使用RejectedExecutionHandlier處理被拒絕的任務(wù)。(具體怎么處理,屬于拒絕策略的范疇)
當(dāng)線程池中的線程數(shù)量大于corePoolSize時,如果某線程空閑時間超過keepAliveTime,線程將被終止。這樣,線程池可以動態(tài)的調(diào)整池中的線程數(shù)。
以上就是關(guān)于Java線程池的增長過程全部知識點,感謝大家對腳本之家的支持。

相關(guān)文章

  • 解析Java中的static關(guān)鍵字

    解析Java中的static關(guān)鍵字

    static是方便在沒有創(chuàng)建對象的情況下進(jìn)行調(diào)用(方法/變量)。顯然,被static關(guān)鍵字修飾的方法或者變量不需要依賴于對象來進(jìn)行訪問,只要類被加載了,就可以通過類名去進(jìn)行訪問。static可以用來修飾類的成員方法、類的成員變量,另外也可以編寫static代碼塊來優(yōu)化程序性能
    2021-06-06
  • springboot2自動加載sql文件的實現(xiàn)

    springboot2自動加載sql文件的實現(xiàn)

    本文主要介紹了springboot2自動加載sql文件的實現(xiàn),通過配置文件或注解的方式,我們可以輕松地將SQL語句映射到數(shù)據(jù)庫中,實現(xiàn)自動加載,感興趣的可以了解一下
    2023-11-11
  • MybatisPlus使用Mybatis的XML的動態(tài)SQL的功能實現(xià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)用實踐記錄(場景分析)

    本文介紹了如何在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ù)管理

    本篇文章主要介紹了詳解Spring學(xué)習(xí)之編程式事務(wù)管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java springboot 整合 Nacos的實例代碼

    Java springboot 整合 Nacos的實例代碼

    這篇文章主要介紹了Java springboot 整合 Nacos的實例,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 關(guān)于Jmeter接口測試實戰(zhàn)-Cookies

    關(guān)于Jmeter接口測試實戰(zhàn)-Cookies

    這篇文章主要介紹了關(guān)于Jmeter接口測試實戰(zhàn)-Cookies問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Linux環(huán)境卸載Centos7自帶的OpenJDK和安裝JDK1.8圖文教程

    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)功能

    這篇文章主要介紹了springboot使用注解實現(xiàn)鑒權(quán)功能,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Java有序的Map LinkedHashMap用法詳解

    Java有序的Map LinkedHashMap用法詳解

    LinkedHashMap是Java提供的一個集合類,它繼承自HashMap,并在HashMap基礎(chǔ)上維護(hù)一條雙向鏈表,本文給大家介紹java 有序的Map LinkedHashMap簡介,感興趣的朋友一起看看吧
    2024-01-01

最新評論

博白县| 桂林市| 五原县| 中江县| 饶河县| 青铜峡市| 彩票| 普格县| SHOW| 岳池县| 集贤县| 陆川县| 监利县| 菏泽市| 准格尔旗| 个旧市| 锦屏县| 得荣县| 胶南市| 老河口市| 凉山| 呈贡县| 浠水县| 花莲县| 青铜峡市| 磴口县| 印江| 平乐县| 调兵山市| 梁山县| 罗山县| 古田县| 许昌县| 哈尔滨市| 久治县| 水城县| 瑞安市| 邢台市| 扶绥县| 舟曲县| 封开县|