国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

面試官:說一下線程池內部工作原理?

開發 后端
在Java中有一個Executors工具類,可以為我們創建一個線程池,其本質就是new了一個ThreadPoolExecutor對象。線程池幾乎也是面試必考問題。本節結合源代碼,說說ThreadExecutor的工作原理。

[[403251]]

 隨著cpu核數越來越多,不可避免的利用多線程技術以充分利用其計算能力。所以,多線程技術是服務端開發人員必須掌握的技術。

線程的創建和銷毀,都涉及到系統調用,比較消耗系統資源,所以就引入了線程池技術,避免頻繁的線程創建和銷毀。

在Java中有一個Executors工具類,可以為我們創建一個線程池,其本質就是new了一個ThreadPoolExecutor對象。線程池幾乎也是面試必考問題。本節結合源代碼,說說ThreadExecutor的工作原理

一、線程池創建

先看一下ThreadPoolExecutor參數最全的構造方法:

圖片

  •  corePoolSize: 線程池的核心線程數,說白了就是,即便是線程池里沒有任何任務,也會有corePoolSize個線程在候著等任務。
  •  maximumPoolSize: 最大線程數,不管你提交多少任務,線程池里最多工作線程數就是maximumPoolSize。
  •  keepAliveTime: 線程的存活時間。當線程池里的線程數大于corePoolSize時,如果等了keepAliveTime時長還沒有任務可執行,則線程退出。
  •  unit: 這個用來指定keepAliveTime的單位,比如秒:TimeUnit.SECONDS。
  •  workQueue: 一個阻塞隊列,提交的任務將會被放到這個隊列里。
  •  threadFactory: 線程工廠,用來創建線程,主要是為了給線程起名字,默認工廠的線程名字:pool-1-thread-3。
  •  handler: 拒絕策略,當線程池里線程被耗盡,且隊列也滿了的時候會調用。

以上就是創建線程池時用到的參數,面試中經常會有面試官問到這個問題。

二、線程池執行流程

這里用一個圖來說明線程池的執行流程

圖片

任務被提交到線程池,會先判斷當前線程數量是否小于corePoolSize,如果小于則創建線程來執行提交的任務,否則將任務放入workQueue隊列,如果workQueue滿了,則判斷當前線程數量是否小于maximumPoolSize,如果小于則創建線程執行任務,否則就會調用handler,以表示線程池拒絕接收任務。

這里以jdk1.8.0_111的源代碼為例,看一下具體實現。

1、先看一下線程池的executor方法

圖片

  •  判斷當前活躍線程數是否小于corePoolSize,如果小于,則調用addWorker創建線程執行任務
  •  如果不小于corePoolSize,則將任務添加到workQueue隊列。
  •  如果放入workQueue失敗,則創建線程執行任務,如果這時創建線程失敗(當前線程數不小于maximumPoolSize時),就會調用reject(內部調用handler)拒絕接受任務。

2、再看下addWorker的方法實現

這塊代碼是在創建非核心線程時,即core等于false。判斷當前線程數是否大于等于maximumPoolSize,如果大于等于則返回false,即上邊說到的③中創建線程失敗的情況。

addWorker方法的下半部分:

圖片

  •  創建Worker對象,同時也會實例化一個Thread對象。
  •  啟動啟動這個線程

3、再到Worker里看看其實現

圖片

可以看到在創建Worker時會調用threadFactory來創建一個線程。上邊的②中啟動一個線程就會觸發Worker的run方法被線程調用。

4、接下來咱們看看runWorker方法的邏輯

圖片

線程調用runWoker,會while循環調用getTask方法從workerQueue里讀取任務,然后執行任務。只要getTask方法不返回null,此線程就不會退出。

5、最后在看看getTask方法實現

圖片

  •  咱們先不管allowCoreThreadTimeOut,這個變量默認值是false。wc>corePoolSize則是判斷當前線程數是否大于corePoolSize。
  •  如果當前線程數大于corePoolSize,則會調用workQueue的poll方法獲取任務,超時時間是keepAliveTime。如果超過keepAliveTime時長,poll返回了null,上邊提到的while循序就會退出,線程也就執行完了。

如果當前線程數小于corePoolSize,則會調用workQueue的take方法阻塞在當前。 

 

責任編輯:龐桂玉 來源: Java知音
相關推薦

2022-06-06 15:33:20

線程Java釋放鎖

2023-09-12 14:56:13

MyBatis緩存機制

2024-02-21 16:42:00

2024-02-27 15:23:48

RedLock算法Redis

2023-12-29 13:45:00

2024-01-29 10:08:11

零拷貝Zero-copyCPU 拷貝

2025-03-10 07:05:07

2021-07-28 10:08:19

類加載代碼塊面試

2022-06-07 12:03:33

Java內存模型

2023-02-08 08:32:41

輪詢鎖

2023-02-18 13:34:14

Nacos健康檢查機制

2023-11-29 08:00:53

JavaTreeMap底層

2020-07-30 07:58:36

加密算法

2023-11-29 16:38:12

線程池阻塞隊列開發

2024-03-11 18:18:58

項目Spring線程池

2023-01-30 15:39:40

GETHTTP

2022-03-09 07:35:24

線程池線程參數

2022-02-17 08:02:08

線程Java生命周期

2021-11-27 08:13:13

Final 面試

2024-08-09 09:01:08

原型鏈JavaScriptstudent1?
點贊
收藏

51CTO技術棧公眾號

日韩中文首页| 国产精品亚洲第一区在线暖暖韩国 | 成人看片人aa| 91国产视频在线观看| 日本乱人伦a精品| 男人的天堂在线播放| 精品少妇一区二区三区在线| 欧美在线va视频| 久久嫩草精品久久久精品| 久久久视频精品| 在线视频99| 亚洲日本免费| 在线精品亚洲| 亚洲成人一区在线| 国产日产亚洲精品| 北条麻妃在线| 麻豆精品一区二区综合av| 一本色道久久88综合亚洲精品ⅰ| 丰满人妻中伦妇伦精品app| 外国成人在线视频| 色悠悠久久综合| 四虎永久国产精品| 久久亚洲精品中文字幕| 国产精品女主播av| 91免费精品视频| 激情五月综合色婷婷一区二区| 美女黄视频在线播放| 亚洲美女一区| 亚洲日韩欧美视频一区| 邪恶网站在线观看| 911久久香蕉国产线看观看| 精品欧美黑人一区二区三区| 波多野结衣50连登视频| 日韩av在线播放网址| 国产999在线观看| 婷婷综合五月| 日韩国产中文字幕| 69国产精品| 99国产精品| 日韩精品一区二区三区四区五区| 爱啪啪综合导航| 国产在线1区| 欧美理论在线| 亚洲人成伊人成综合网小说| 国产日韩综合一区二区性色av| 国产精品hd| 欧美乱大交xxxxx另类电影| 一本久道久久综合狠狠爱亚洲精品| 日韩中文字幕二区| www.成人在线视频| 精品视频二区| 欧美黑人粗大| 蜜桃视频一区二区三区在线观看| 欧美乱熟臀69xxxxxx| 日本伊人精品一区二区三区介绍 | 国产精品青草综合久久久久99| 国产美女三级视频| 一区二区三区日韩| 国产三级精品在线不卡| 人人精品久久| 日韩欧美精品网址| 男女视频网站在线观看| 亚洲国产婷婷| 日本成人在线不卡| 狠狠色丁香久久综合频道| 日韩欧美精品一区二区三区经典| 99久久综合精品| 欧美极品色图| 久久理论电影| 色噜噜国产精品视频一区二区| 噼里啪啦国语在线观看免费版高清版| 香蕉综合视频| 欧美体内谢she精2性欧美| 三妻四妾完整版在线观看电视剧| 五月婷婷激情综合| 91av俱乐部| 国产一区二区中文字幕| 国产精品一码二码三码在线| 久久九九热re6这里有精品 | 激情偷拍久久| 国产熟女高潮视频| 欧美一区二区视频在线观看2022| 在线观看免费播放网址成人| 成人免费av在线| 中文字幕久久一区| 久久国产精品亚洲77777| 亚洲视频一二三区| 四虎国产精品永远| 亚洲欧美成aⅴ人在线观看| 日韩黄色短视频| 国产综合久久久久久久久久久久| 91福利电影| 国产一区二区欧美日韩| 国产视频九色蝌蚪| 精品福利视频导航| 欧美另类激情| 九色在线免费| 欧美日韩一区二区免费在线观看| 中文字幕一区二区三区四区不卡 | 久久久久久久97| xxxx日韩| 日本高清视频一区二区三区| 亚洲综合无码一区二区| 国产精品传媒麻豆hd| 大地资源中文在线观看免费版| 两个人的视频www国产精品| 波多视频一区| 一二三在线视频社区| 亚洲四区在线观看| 日本aⅴ精品一区二区三区| 五丁香在线视频| 国产 porn| 喜爱夜蒲2在线| 亚洲精品suv精品一区二区| 亚洲一区国产一区| 日本精品600av| 日韩国产欧美三级| 性欧美高清come| 美女视频免费精品| 福利小视频在线| 制服国产精品| 国产一区二区无遮挡| av一本久道久久波多野结衣| 一区二区免费看| 亚洲福利视频一区| 色狠狠一区二区| 婷婷综合网站| 久久久久久噜噜噜久久久精品| 国产精品激情av电影在线观看| 国产在线看片| 成人看片app| 黄色三级视频在线| 美女的诞生在线观看高清免费完整版中文| www亚洲天堂| 欧美色视频免费| 亚洲成人网上| 欧美成人一区二区三区电影| 国产精品二三区| 午夜天堂影视香蕉久久| 漂亮人妻被中出中文字幕| 国产视频三级在线观看播放| 97久久夜色精品国产| 国产精品高颜值在线观看| 欧美成人精品一区二区男人看| 18黄暴禁片在线观看| www.夜夜爽| 亚洲欧洲免费无码| 91精品91久久久中77777老牛| 午夜在线观看91| 亚洲成人五区| 影音先锋在线播放| 色婷婷久久综合| 精品一区久久| 久久久国际精品| 国产成人亚洲一区二区三区| 国产精品片aa在线观看| 久久婷婷五月综合色丁香| 久久久久久久久久久久久久久久久久| 国产黄色精品网站| 亚洲区国产区| 一区二区三区.www| 久久高清视频免费| 日韩欧美国产激情| 中文字幕日韩亚洲| 91精彩视频在线观看| 亚洲三级 欧美三级| 中文字幕亚洲无线码a| 欧美网站大全在线观看| 亚洲精品高清在线| 午夜精品久久久久久99热| 色悠悠国产精品| 亚洲国产欧美不卡在线观看| 老司机99精品99| 日韩中文字幕一区二区三区| 在线观看免费一区| 国产在线国偷精品免费看| 国产成+人+综合+亚洲欧洲| 91成人看片片| 国产精品视频一区视频二区 | 91成人午夜| 欧洲成人一区| 婷婷成人av| 中文一区二区在线观看| 亚洲毛片av在线| 欧洲成人在线观看| 7777免费精品视频| 国产精品一 二 三| 亚洲天堂网站在线观看视频| 超碰成人久久| 日韩图片一区| 1024精品久久久久久久久| 精品久久香蕉国产线看观看亚洲| 成人黄色av播放免费| 国产高清视频在线播放| 美女视频网站黄色亚洲| 日韩有码在线播放| 国a精品视频大全| 一级片在线视频| 美女精品在线观看| 国内精品久久久久影院色|