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

詳解Java線程池的增長過程

 更新時(shí)間:2019年08月06日 16:14:36   作者:為何不是夢  
在本篇文章里小編給大家整理的是關(guān)于Java線程池的增長過程以及相關(guān)知識點(diǎ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時(shí)候,多出來的空閑線程,多長時(shí)間會被銷毀。
  • 4.unit 時(shí)間單位
  • 5.workQueue 任務(wù)隊(duì)列,用于存放提交但是尚未被執(zhí)行的任務(wù)。
  • 6.threadFactory 線程工廠,用于創(chuàng)建線程,一般可以用默認(rèn)的
  • 7.handler 拒絕策略,當(dāng)任務(wù)過多時(shí)候,如何拒絕任務(wù)。當(dāng)提交任務(wù)數(shù)超過maximumPoolSize + workQueue 的size之和,任務(wù)交給RejectedExecutionHandler 處理

線程池的增長

線程池的增長與創(chuàng)建自定義線程池時(shí)設(shè)置的參數(shù)密切相關(guān),重點(diǎn)講解比較容易讓人誤解的 corePoolsize, maximumPoolsize, workQueue之 間關(guān)系。

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

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

相關(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文件的實(shí)現(xiàn)

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

    本文主要介紹了springboot2自動加載sql文件的實(shí)現(xiàn),通過配置文件或注解的方式,我們可以輕松地將SQL語句映射到數(shù)據(jù)庫中,實(shí)現(xiàn)自動加載,感興趣的可以了解一下
    2023-11-11
  • MybatisPlus使用Mybatis的XML的動態(tài)SQL的功能實(shí)現(xiàn)多表查詢

    MybatisPlus使用Mybatis的XML的動態(tài)SQL的功能實(shí)現(xiàn)多表查詢

    本文主要介紹了MybatisPlus使用Mybatis的XML的動態(tài)SQL的功能實(shí)現(xiàn)多表查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 在SpringBoot中使用UniHttp簡化天地圖路徑規(guī)劃調(diào)用實(shí)踐記錄(場景分析)

    在SpringBoot中使用UniHttp簡化天地圖路徑規(guī)劃調(diào)用實(shí)踐記錄(場景分析)

    本文介紹了如何在SpringBoot項(xiàng)目中使用UniHttp簡化天地圖路徑規(guī)劃接口的調(diào)用,通過一個(gè)具體的例子展示了如何根據(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)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java springboot 整合 Nacos的實(shí)例代碼

    Java springboot 整合 Nacos的實(shí)例代碼

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

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

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

    Linux環(huán)境卸載Centos7自帶的OpenJDK和安裝JDK1.8圖文教程

    CentOS系統(tǒng)是開發(fā)者常用的Linux操作系統(tǒng),安裝它時(shí)會默認(rèn)安裝自帶的舊版本的OpenJDK,但在開發(fā)者平時(shí)開發(fā)Java項(xiàng)目時(shí)還是需要完整的JDK,這篇文章主要給大家介紹了關(guān)于Linux環(huán)境卸載Centos7自帶的OpenJDK和安裝JDK1.8的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • springboot使用注解實(shí)現(xiàn)鑒權(quán)功能

    springboot使用注解實(shí)現(xiàn)鑒權(quán)功能

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

    Java有序的Map LinkedHashMap用法詳解

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

最新評論

息烽县| 高邑县| 天祝| 上蔡县| 巩留县| 龙南县| 台南县| 嘉荫县| 江西省| 商水县| 蚌埠市| 长泰县| 闽侯县| 铜鼓县| 绥芬河市| 衡山县| 黄石市| 合山市| 沅陵县| 义乌市| 沛县| 甘泉县| 亚东县| 钟山县| 连江县| 米泉市| 崇阳县| 手机| 渑池县| 女性| 百色市| 图片| 邛崃市| 射洪县| 宜黄县| 平罗县| 恩施市| 会泽县| 扬中市| 阳东县| 吴旗县|