chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

線程池七大核心參數(shù)執(zhí)行順序

科技綠洲 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-04 16:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

線程池是一種用于管理和調(diào)度線程執(zhí)行的技術(shù),通過將任務(wù)分配到線程池中的線程進行處理,可以有效地控制并發(fā)線程的數(shù)量,提高系統(tǒng)的資源利用率和任務(wù)處理效率。在使用線程池之前,我們需要了解線程池的七大核心參數(shù)以及它們的執(zhí)行順序。

  1. corePoolSize(核心線程數(shù)):
    線程池中一直存活的線程數(shù)量。在線程池初始化或者任務(wù)提交后,線程池會首先創(chuàng)建corePoolSize個線程來執(zhí)行任務(wù),即使這些線程處于空閑狀態(tài)。
  2. maximumPoolSize(最大線程數(shù)):
    線程池中允許存在的最大線程數(shù)量。如果隊列中的任務(wù)數(shù)超過了maximumPoolSize,那么線程池會創(chuàng)建新的線程來處理該任務(wù)??赏ㄟ^調(diào)整該參數(shù)來設(shè)定線程池的最大并發(fā)處理能力。
  3. keepAliveTime(線程空閑時間):
    在線程池中,超過corePoolSize數(shù)量的線程在空閑時間超過keepAliveTime后會被銷毀,以減少資源的消耗。通常情況下,線程在空閑時間超過keepAliveTime后,會被銷毀直到線程池中的線程數(shù)不超過corePoolSize。
  4. unit(線程空閑時間單位):
    keepAliveTime的時間單位??梢赃x擇秒、毫秒、微秒等單位。
  5. workQueue(任務(wù)隊列):
    線程池中用于存儲任務(wù)的隊列。當任務(wù)來臨時,如果當前線程數(shù)小于corePoolSize,則會創(chuàng)建新的線程來執(zhí)行任務(wù);如果當前線程數(shù)大于等于corePoolSize,則會將任務(wù)加入到workQueue中。
  6. threadFactory(線程工廠):
    線程工廠用于創(chuàng)建線程,可以定制線程的一些屬性,如線程名、優(yōu)先級等??梢酝ㄟ^實現(xiàn)ThreadFactory接口來自定義線程工廠。
  7. handler(飽和策略):
    當線程池中的線程數(shù)達到maximumPoolSize并且任務(wù)隊列已滿時,需要采取一種策略來處理新提交的任務(wù)。常見的飽和策略有:AbortPolicy(拋出RejectedExecutionException異常)、CallerRunsPolicy(由提交任務(wù)的線程來執(zhí)行該任務(wù))、DiscardOldestPolicy(丟棄隊列中最舊的任務(wù))和DiscardPolicy(直接丟棄新提交的任務(wù))。

以上七個參數(shù)的執(zhí)行順序如下:
首先,當任務(wù)提交給線程池時,線程池會判斷當前線程數(shù)是否小于核心線程數(shù),如果小于則創(chuàng)建新線程執(zhí)行任務(wù);否則,將任務(wù)加入到任務(wù)隊列中。

其次,在任務(wù)隊列中,線程池會判斷隊列是否已滿,如果已滿則判斷當前線程數(shù)是否小于最大線程數(shù),如果小于則根據(jù)具體的飽和策略來決定是否創(chuàng)建新線程執(zhí)行任務(wù)。

接著,如果任務(wù)隊列未滿或者線程池未達到最大線程數(shù),則線程池會繼續(xù)判斷當前線程數(shù)是否小于核心線程數(shù),如果小于則創(chuàng)建新線程執(zhí)行任務(wù);否則,將任務(wù)加入到任務(wù)隊列中。

然后,在任務(wù)隊列中的任務(wù)等待執(zhí)行時,線程池會根據(jù)空閑時間判斷是否銷毀多余的線程,直到線程數(shù)不超過核心線程數(shù)。

最后,在線程池中如果沒有可空閑的線程,并且任務(wù)隊列已滿,則根據(jù)具體的飽和策略來處理新提交的任務(wù)。

綜上所述,線程池的核心參數(shù)在任務(wù)提交到線程池后的執(zhí)行順序是:核心線程數(shù) -> 最大線程數(shù) -> 線程空閑時間 -> 任務(wù)隊列 -> 線程工廠 -> 飽和策略。了解線程池的核心參數(shù)及其執(zhí)行順序可以幫助我們更好地理解和使用線程池,提高程序的性能和可維護性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4529

    瀏覽量

    87386
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1867

    瀏覽量

    33045
  • 線程池
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    7134
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    跨平臺的線程組件--TP組件

    /銷毀代價是很高的。那么我們要怎么去設(shè)計多線程編程呢???答案:對于長駐的線程,我們可以創(chuàng)建獨立的線程執(zhí)行。但是非長駐的線程,我們可以通過
    的頭像 發(fā)表于 04-06 15:39 ?1154次閱讀

    Java中的線程包括哪些

    就可以分配一個線程執(zhí)行。 ExecutorService:是 Executor 的子接口,提供了線程的一些生命周期方法。代表了一個線程
    的頭像 發(fā)表于 10-11 15:33 ?1037次閱讀
    Java中的<b class='flag-5'>線程</b><b class='flag-5'>池</b>包括哪些

    買藥秒送 JADE動態(tài)線程實踐及原理淺析

    ,我們通過3輪高保真壓測最終初步確定了線程核心參數(shù)。但我們?nèi)悦媾R一些保障系統(tǒng)穩(wěn)定性問題:如何監(jiān)控線程
    的頭像 發(fā)表于 09-04 11:11 ?1173次閱讀
    買藥秒送 JADE動態(tài)<b class='flag-5'>線程</b><b class='flag-5'>池</b>實踐及原理淺析

    線程是如何實現(xiàn)的

    線程的概念是什么?線程是如何實現(xiàn)的?
    發(fā)表于 02-28 06:20

    java自帶的線程方法

    、ThreadPoolExecutor結(jié)構(gòu) ThreadPoolExecutor的主要結(jié)構(gòu)及繼承關(guān)系如下圖所示: 主要成員變量:任務(wù)隊列存放那些暫時無法執(zhí)行的任務(wù);工作線程存放當前啟用的所有
    發(fā)表于 09-27 11:06 ?0次下載

    基于Nacos的簡單動態(tài)化線程實現(xiàn)

    本文以Nacos作為服務(wù)配置中心,以修改線程核心線程數(shù)、最大線程數(shù)為例,實現(xiàn)一個簡單的動態(tài)化線程
    發(fā)表于 01-06 14:14 ?1082次閱讀

    Java線程核心原理

    看過Java線程源碼的小伙伴都知道,在Java線程池中最核心的類就是ThreadPoolExecutor,
    的頭像 發(fā)表于 04-21 10:24 ?1124次閱讀

    核心線程數(shù)和最大線程數(shù)區(qū)別

    達到最大線程數(shù)。當任務(wù)執(zhí)行完畢后,線程會根據(jù)線程參數(shù)
    的頭像 發(fā)表于 06-01 09:33 ?8072次閱讀

    cpu核心數(shù)和線程數(shù)的關(guān)系

    核心線程數(shù)是線程池中一直存在的線程數(shù),不會被回收。最大線程數(shù)是線程池中最多能夠存在的
    的頭像 發(fā)表于 06-01 17:41 ?1.1w次閱讀

    線程的兩個思考

    org.apache.tomcat.util.threads.TaskQueue org.apache.tomcat.util.threads.ThreadPoolExecutor 線程維護多個線程,等待監(jiān)督管理者分配可并發(fā)
    的頭像 發(fā)表于 09-30 11:21 ?3305次閱讀
    <b class='flag-5'>線程</b><b class='flag-5'>池</b>的兩個思考

    線程基本概念與原理

    一、線程基本概念與原理 1.1 線程概念及優(yōu)勢 C++線程簡介
    的頭像 發(fā)表于 11-10 10:24 ?957次閱讀

    線程的基本概念

    線程的基本概念 不管線程是什么東西!但是我們必須知道線程被搞出來的目的就是:提高程序
    的頭像 發(fā)表于 11-10 16:37 ?770次閱讀
    <b class='flag-5'>線程</b><b class='flag-5'>池</b>的基本概念

    線程三大核心參數(shù)的含義 線程核心線程數(shù)制定策略

    以上考點作為線程面試幾乎必問的內(nèi)容,大部分人應(yīng)該都是如數(shù)家珍,張口就來,但是懂了面試八股文真的就不一定在實際運用中真的就會把線程用好 。
    的頭像 發(fā)表于 12-01 10:20 ?1490次閱讀
    <b class='flag-5'>線程</b><b class='flag-5'>池</b>三大<b class='flag-5'>核心</b><b class='flag-5'>參數(shù)</b>的含義 <b class='flag-5'>線程</b><b class='flag-5'>池</b><b class='flag-5'>核心</b><b class='flag-5'>線程</b>數(shù)制定策略

    線程的創(chuàng)建方式有幾種

    的開銷。線程的創(chuàng)建方式有多種,下面將詳細介紹幾種常用的線程創(chuàng)建方式。 手動創(chuàng)建線程 手動創(chuàng)
    的頭像 發(fā)表于 12-04 16:52 ?1283次閱讀

    什么是動態(tài)線程?動態(tài)線程的簡單實現(xiàn)思路

    因此,動態(tài)可監(jiān)控線程一種針對以上痛點開發(fā)的線程管理工具。主要可實現(xiàn)功能有:提供對 Spring 應(yīng)用內(nèi)線程
    的頭像 發(fā)表于 02-28 10:42 ?1126次閱讀