ThreadPoolExecutor邏輯理解

不想貼源碼,只想記一下它的實現(xiàn)思路

類中包含以下幾個重要的成員

Work 內(nèi)部類

關(guān)聯(lián)了一個線程, 可以理解為一條工作流水線,就是用來執(zhí)行具體工作的

works

工作線程列表,同時間開了多條工作流水線

workQueue

工作隊列,用來暫時收留沒來得及做的工作

corePoolSize

核心線程數(shù):線程數(shù)超過該值時,則把來不及的工作放入workQueue

maximumPoolSize

最大線程數(shù): workQueue放滿之后,則新增工作流水線,如線程數(shù)超過了該值,就得用RejectedExecutionHandler來處理了

注意事項

  1. 總線程數(shù)在小于corePoolSize時,每次都創(chuàng)建新的線程來執(zhí)行
  2. 線程執(zhí)行完目前的工作后,如果再無工作可做,依據(jù)allowCoreThreadTimeOut開關(guān),有可能阻塞在workQueue里,否則就銷毀了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 博客鏈接:http://www.ideabuffer.cn/2017/04/04/深入理解Java線程池:Thre...
    閃電是只貓閱讀 16,085評論 15 133
  • 前言 JDK中為我們提供了一個并發(fā)線程框架,它是的我們可以在有異步任務(wù)或大量并發(fā)任務(wù)需要執(zhí)行時可以使用它提供的線程...
    Justlearn閱讀 1,907評論 0 10
  • 前段時間遇到這樣一個問題,有人問微信朋友圈的上傳圖片的功能怎么做才能讓用戶的等待時間較短,比如說一下上傳9張圖片,...
    加油碼農(nóng)閱讀 1,278評論 0 2
  • 線程池常見實現(xiàn) 線程池一般包含三個主要部分: 調(diào)度器: 決定由哪個線程來執(zhí)行任務(wù), 執(zhí)行任務(wù)所能夠的最大耗時等 線...
    永順閱讀 2,366評論 3 22
  • 創(chuàng)客馬拉松是什么? 創(chuàng)客馬拉松是一個48小時極限競賽,在48小時內(nèi),你將認(rèn)識各種背景的人,和他們自由組隊,基于我們...
    lilythedog閱讀 1,506評論 0 1

友情鏈接更多精彩內(nèi)容