慕課網(wǎng)高并發(fā)實(shí)戰(zhàn)(九)- 線程池

1 new Thread 弊端

&? 每次new Thread新建對象此洲,性能差

& 線程缺乏統(tǒng)一管理缩擂,可能無限制的新建線程,相互競爭,有可能占用過多系統(tǒng)資源導(dǎo)致死機(jī)或OOM

& 缺少更多功能偏灿,如更多執(zhí)行,定期執(zhí)行备典,線程中斷

2 線程池的好處




1 如果線程池中的線程數(shù)量小于corePoolSize中的數(shù)量诫欠,直接創(chuàng)建新的線程處理任務(wù),

2? ? ?corePoolSize < 當(dāng)前線程的數(shù)量<maxImumPoolSize莱褒, 只有當(dāng)workQueue滿的時候才去創(chuàng)建新的線程去處理任務(wù)

1)

if(corePoolSize ==maxImumPoolSize)&&(workQueue未滿的時候)

把請求放到workQueue里面击困,等待有空閑的線程從workQueue取出任務(wù)

2)

if(maxImumPoolSize滿了)&&(workQueue滿的時候)

通過拒絕策略去執(zhí)行


workQueue?

保持等待任務(wù)的阻塞隊列,提交新的任務(wù)到線程池以后广凸,會根據(jù)當(dāng)前線程池中正在運(yùn)行的線程數(shù)量來決定處理方式

1 直接切換 無界隊列 或者有界隊列

直接隊列:SynchronousQueue? ?

無界隊列:基于鏈表的隊列 LinkedBlockingQueue阅茶,能夠創(chuàng)建的最大線程數(shù)目為corePoolSize??maxImumPoolSize 不起作用了,當(dāng)corePoolSize? 數(shù)目的線程都在運(yùn)行的時候谅海,新的線程就會放到等待隊列中去

有界隊列:使用的是ArrayBlockingQueue 實(shí)現(xiàn)的脸哀,可以將線程的最大數(shù)目限制為maximumPoolSize,線程池對線程的調(diào)度更困難,減少了系統(tǒng)的資源消耗? 線程池和隊列的大小都是有限的


降低系統(tǒng)消耗:設(shè)置較大的隊列容量扭吁,較小的線程池容量

提交的任務(wù)經(jīng)常阻塞:可以設(shè)置最大線程數(shù)

線程池數(shù)目設(shè)置過大會導(dǎo)致并發(fā)量增加撞蜂,需要考慮線程之間的調(diào)度

線程池設(shè)置大一點(diǎn) 提高CPU利用率盲镶,


2? KeepAliveTime:線程沒有任務(wù)執(zhí)行時最多保持多久時間終止,當(dāng)線程池中線程大于corePoolSize 時候谅摄,線程保持的時間


workQueue 對應(yīng)的阻塞隊列滿了的時候徒河,并且沒有空閑的線程池,這時候繼續(xù)提交任務(wù)的時候送漠,需要采取一種策略來處理這個任務(wù)顽照,線程池提供了四種策略

(1,直接拋出異常

2 用調(diào)用者的線程來執(zhí)行任務(wù)

3? 丟棄隊列中最考前的任務(wù),并執(zhí)行當(dāng)前任務(wù)

4 直接丟棄這個任務(wù) )


9.2? 線程池的狀態(tài)






Executor 框架:根據(jù)一組策略的調(diào)用調(diào)度一種異步的框架闽寡,將任務(wù)提交和任務(wù)運(yùn)行分離的分離的機(jī)制

JUC中有三個Executor?接口:? Executor??ExecutorService SchedukedExecutorService

ThreadPoolExecutor 是功能最強(qiáng)的接口代兵,根據(jù)需要傳入?yún)?shù)和策略

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Executor 框架接口

&&&&? Executors.newCachedThreadPool? 命名新的線程池? 創(chuàng)建可緩存的線程池,如果線程池長度超過了處理的需要可以靈活的回收爷狈,如果沒有就創(chuàng)建新的線程池

&&&&?Executors.newFixedThreadPool 創(chuàng)建的是一種定長的線程池植影,可以控制線程最大的并發(fā)數(shù),超出的線程需要等待

&&&&??Executors.newScheduledThreadPool 創(chuàng)建的也是定長的線程池,支持定時和周期任務(wù)的執(zhí)行

&&&&?Executors.newSingleThreadExecutor 創(chuàng)建的是一個單線程化的線程池涎永,只會用唯一的線程任務(wù)來執(zhí)行思币,保證所有任務(wù)按照指令順序去執(zhí)行(優(yōu)先級,先入先出



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末羡微,一起剝皮案震驚了整個濱河市谷饿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妈倔,老刑警劉巖博投,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盯蝴,居然都是意外死亡毅哗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門捧挺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虑绵,“玉大人,你說我怎么就攤上這事闽烙≌舻睿” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵鸣峭,是天一觀的道長宏所。 經(jīng)常有香客問我,道長摊溶,這世上最難降的妖魔是什么爬骤? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮莫换,結(jié)果婚禮上霞玄,老公的妹妹穿的比我還像新娘骤铃。我一直安慰自己,他們只是感情好坷剧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布惰爬。 她就那樣靜靜地躺著,像睡著了一般惫企。 火紅的嫁衣襯著肌膚如雪撕瞧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天狞尔,我揣著相機(jī)與錄音丛版,去河邊找鬼。 笑死偏序,一個胖子當(dāng)著我的面吹牛页畦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播研儒,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼豫缨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了端朵?” 一聲冷哼從身側(cè)響起州胳,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逸月,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遍膜,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碗硬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓢颅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恩尾。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挽懦,靈堂內(nèi)的尸體忽然破棺而出翰意,到底是詐尸還是另有隱情,我是刑警寧澤信柿,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布冀偶,位于F島的核電站,受9級特大地震影響渔嚷,放射性物質(zhì)發(fā)生泄漏进鸠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一形病、第九天 我趴在偏房一處隱蔽的房頂上張望客年。 院中可真熱鬧霞幅,春花似錦、人聲如沸量瓜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绍傲。三九已至扔傅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唧取,已是汗流浹背铅鲤。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枫弟,地道東北人邢享。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像淡诗,于是被迫代替她去往敵國和親骇塘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容