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

線程池的七大核心參數(shù)以及常用的四種線程池詳解

 更新時(shí)間:2025年05月07日 09:59:28   作者:機(jī)智小袁  
這篇文章主要介紹了線程池的七大核心參數(shù)以及常用的四種線程池使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

引言

我們通過(guò)線程池可以實(shí)現(xiàn)已創(chuàng)建線程的復(fù)用,減少資源的消耗;控制并發(fā)的數(shù)量;以及對(duì)線程進(jìn)行統(tǒng)一的管理。

下面我會(huì)對(duì)線程池的核心參數(shù)以及常用的線程池種類進(jìn)行詳細(xì)的講解。

7大核心參數(shù)

int corePoolSize 核心線程最大數(shù)量

核心線程:

  • 線程池中有兩類線程:核心線程和非核心線程。
  • 核心線程默認(rèn)情況下會(huì)一直存在于線程池中,即使這個(gè)核心線程什么都不干,而非核心線程如果長(zhǎng)時(shí)間的閑置,就會(huì)被銷毀。

int maximumPoolSize 線程總數(shù)量最大值

改值等于核心線程數(shù)+非核心線程數(shù)

long keepAliveTime 非核心線程的閑置超時(shí)時(shí)間

非核心線程閑置時(shí)間超過(guò)此值就會(huì)被銷毀

TimeUnit unit (keepAliveTime的單位)

TimeUnit是一個(gè)枚舉類型:

  • NANOSECONDS : 1微毫秒,
  • MICROSECONDS:1微秒
  • MILLSECONDS:1毫秒
  • SECONDS:1秒
  • MINUTES:1分
  • HOURS:1小時(shí)
  • DAYS:1天

BlockingQueue workQueue 阻塞隊(duì)列

常見(jiàn)的幾個(gè)阻塞隊(duì)列:

  • LinkedBlockingQueue

鏈?zhǔn)阶枞?duì)列,默認(rèn)大?。篒nterger.MAX_VALUE,可以指定大小。

  • ArrayBlockingQueue

數(shù)組阻塞隊(duì)列,需要指定大小

  • SynchronousQueue

同步隊(duì)列,內(nèi)部容量為0,每個(gè)put操作都必須等待一個(gè)take操作。反之亦然

  • DelayQueue

延遲隊(duì)列,隊(duì)列中的元素之后當(dāng)其指定的延遲時(shí)間到了,才能從隊(duì)列中獲取到改元素。

ThreadFactory threadFactory 線程工廠

創(chuàng)建線程的工廠,用于批量創(chuàng)建線程,如果不指定,會(huì)新建一個(gè)默認(rèn)的線程工廠。

RejectedExecutionHandler handler 拒絕策略

拒絕處理策略,當(dāng)無(wú)法創(chuàng)建新線程處理任務(wù)并且阻塞隊(duì)列已滿時(shí)就會(huì)采用拒絕處理策略。

jdk默認(rèn)四種策略:

  • ThreadPoolExecutor.AbortPolicy:默認(rèn)拒絕處理策略,丟棄任務(wù)并拋出異常
  • ThreadPollExecutor.DiscardPolicy:丟棄新來(lái)的任務(wù),但不拋出異常
  • ThreadPollExecutor.DiscardOldestPolicy:丟棄阻塞隊(duì)列頭部(最舊)的任務(wù),然后重新嘗試執(zhí)行程序,(如果再次失敗,重復(fù)此過(guò)程)
  • ThreadPollExecutor.CallerRunPolicy:由調(diào)用的線程去處理改任務(wù)。只適用于并發(fā)小的情況。

常用的四種線程池

newCachedThreadPool (可緩存線程池)

核心線程數(shù)為0,總線程數(shù)是最大整數(shù),當(dāng)需要執(zhí)行很多短時(shí)任務(wù)時(shí)它的服用率比較高,會(huì)顯著提升性能。并且線程空閑60s就會(huì)被回收,所以如果沒(méi)有任務(wù),它并不會(huì)占用很多資源。

newFixedThreadPool(指定工作線程數(shù)量的線程池)

核心線程數(shù)等于最大線程數(shù)。也就是該線程池中沒(méi)有非核心線程。

newSingleThreadPool(單線程化的線程池)

只有一個(gè)核心線程,所有任務(wù)按照先來(lái)先執(zhí)行的順序執(zhí)行。

newScheduledThreadPool(定長(zhǎng)線程池)

這個(gè)線程池指定了核心線程的數(shù)量,線程總數(shù)可以創(chuàng)建整數(shù)的最大數(shù)個(gè)。

該線程池支持定時(shí)以及周期性任務(wù)執(zhí)行。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Java程序運(yùn)行機(jī)制及錯(cuò)誤分析

    淺談Java程序運(yùn)行機(jī)制及錯(cuò)誤分析

    這篇文章主要主要介紹了Java虛擬機(jī)(JVM)的有關(guān)內(nèi)容以及Java程序的運(yùn)行機(jī)制和錯(cuò)誤分析,需要的朋友可以了解下。
    2017-09-09
  • JAVA IO和NIO的主要區(qū)別及使用說(shuō)明

    JAVA IO和NIO的主要區(qū)別及使用說(shuō)明

    Java IO(BIO)阻塞式,逐字節(jié)流處理;NIO非阻塞,基于緩沖區(qū)和通道實(shí)現(xiàn)多路復(fù)用,單線程管理多連接,適合高并發(fā)網(wǎng)絡(luò)編程,IO代碼簡(jiǎn)單但性能低,NIO性能高但復(fù)雜度增加,選擇需權(quán)衡開(kāi)發(fā)效率與性能需求
    2025-09-09
  • Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例

    Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例

    學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)的,一定對(duì)隊(duì)列不陌生,java也實(shí)現(xiàn)了隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于Java中隊(duì)列Queue和Deque區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • idea導(dǎo)入配置Spring?Boot項(xiàng)目的詳細(xì)步驟教程

    idea導(dǎo)入配置Spring?Boot項(xiàng)目的詳細(xì)步驟教程

    這篇文章主要給大家介紹了關(guān)于idea導(dǎo)入配置Spring?Boot項(xiàng)目的詳細(xì)步驟,在項(xiàng)目開(kāi)發(fā)過(guò)程中,無(wú)論是導(dǎo)入運(yùn)行團(tuán)隊(duì)開(kāi)發(fā)的項(xiàng)目,還是一些開(kāi)源項(xiàng)目,還是其他的項(xiàng)目,想要在IDEA中完整的運(yùn)行起來(lái)總有很多坑,需要的朋友可以參考下
    2023-08-08
  • SpringMVC中如何獲取@PathVariable的值

    SpringMVC中如何獲取@PathVariable的值

    這篇文章主要介紹了SpringMVC中如何獲取@PathVariable的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 從零搭建腳手架之集成Spring?Retry實(shí)現(xiàn)失敗重試和熔斷器模式(實(shí)戰(zhàn)教程)

    從零搭建腳手架之集成Spring?Retry實(shí)現(xiàn)失敗重試和熔斷器模式(實(shí)戰(zhàn)教程)

    在我們的大多數(shù)項(xiàng)目中,會(huì)有一些場(chǎng)景需要重試操作,而不是立即失敗,讓系統(tǒng)更加健壯且不易發(fā)生故障,這篇文章主要介紹了從零搭建開(kāi)發(fā)腳手架之集成Spring?Retry實(shí)現(xiàn)失敗重試和熔斷器模式,需要的朋友可以參考下
    2022-07-07
  • 微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能

    微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能

    這篇文章主要介紹了微服務(wù)?Spring?Boot?整合?Redis?BitMap?實(shí)現(xiàn)?簽到與統(tǒng)計(jì)功能,文章簡(jiǎn)單介紹了Redis BitMap 基本用法結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Java項(xiàng)目日志脫敏解決方案

    Java項(xiàng)目日志脫敏解決方案

    為了保護(hù)客戶的敏感信息,我們提出了四種日志脫敏處理方案,需要根據(jù)實(shí)際項(xiàng)目需求和情況進(jìn)行選擇,新項(xiàng)目或重構(gòu)的項(xiàng)目,對(duì)于項(xiàng)目標(biāo)準(zhǔn)化要求較高的,推薦使用方案四,感興趣的朋友參考下本文
    2024-10-10
  • Java數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解

    Java數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解

    在之前的學(xué)習(xí)中,我們主要了解了很多 Java 的 基本語(yǔ)法,但是在之后的 Java學(xué)習(xí)中,了解基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)的知識(shí)非常重要,數(shù)據(jù)結(jié)構(gòu)的思想可以幫助我們更加清晰明白的了解 Java 的解題思路等等.今天我們就來(lái)開(kāi)始學(xué)習(xí)實(shí)現(xiàn)一個(gè)Java基礎(chǔ)的單鏈表,需要的朋友可以參考下
    2021-05-05
  • 使用Spring事物時(shí)不生效的場(chǎng)景及解決方法

    使用Spring事物時(shí)不生效的場(chǎng)景及解決方法

    今天介紹一下Spring事物不生效的場(chǎng)景,事物是我們?cè)陧?xiàng)目中經(jīng)常使用的,如果是Java的話,基本上都使用Spring的事物,不過(guò)Spring的事物如果使用不當(dāng),那么就會(huì)導(dǎo)致事物失效或者不回滾,最終導(dǎo)致數(shù)據(jù)不一致,下面我們意義列舉不生效的場(chǎng)景,并給出解決方法
    2023-09-09

最新評(píng)論

慈溪市| 灌阳县| 德江县| 黄浦区| 明溪县| 高唐县| 大城县| 阜康市| 舒兰市| 宁城县| 渭源县| 宜城市| 新丰县| 安多县| 垦利县| 微博| 黎城县| 武陟县| 连州市| 汉川市| 富川| 泰宁县| 潍坊市| 营口市| 东乡县| 江阴市| 东山县| 皮山县| 县级市| 进贤县| 安阳县| 金寨县| 伊金霍洛旗| 岑巩县| 平山县| 嘉黎县| 古浪县| 西畴县| 酒泉市| 通州市| 普陀区|