線程池詳解

java中創(chuàng)建線程池有兩種方式

1.通過提供的工具類Executors進(jìn)行創(chuàng)建胯盯。

但是不推薦這樣創(chuàng)建,通過源碼可以看到掐禁,它創(chuàng)建出來的四個(gè)線程池都存在問題毛秘。

Executors 返回線程池對(duì)象的弊端如下:
FixedThreadPool 和 SingleThreadExecutor : 允許請(qǐng)求的隊(duì)列長度為Integer.MAX_VALUE ,可能堆積大量的請(qǐng)求胡控,從而導(dǎo)致 OOM扳剿。
CachedThreadPool 和 ScheduledThreadPool : 允許創(chuàng)建的最大線程數(shù)量為 Integer.MAX_VALUE ,可能會(huì)創(chuàng)建大量線程铜犬,從而導(dǎo)致 OOM舞终。

2.通過ThreadPoolExecutors自己創(chuàng)建

上面的工具類也是這樣創(chuàng)建的轻庆。

ExecutorService executorService = new ThreadPoolExecutor(
                2,//核心線程數(shù)量
                5,//最大線程數(shù)量
                30,//超過核心線程數(shù)的線程空閑時(shí)的存活時(shí)間
                TimeUnit.SECONDS,//時(shí)間的單位
                new LinkedBlockingDeque<Runnable>(3),//等待隊(duì)列
                Executors.defaultThreadFactory(),//創(chuàng)建線程時(shí)需要的癣猾,默認(rèn)就好
                /*
                CallerRunsPolicy:調(diào)用者模式,當(dāng)線程超過線程所能容納的最大線程時(shí)余爆,把多余的線程回退給調(diào)用者
                這里是回退給main纷宇。
                AbortPolicy:終止模式,直接報(bào)異常蛾方。
                DiscardOldestPolicy:丟棄最老的一個(gè)不報(bào)異常像捶。
                DiscardPolicy:丟棄
                 */
                new ThreadPoolExecutor.DiscardPolicy());//拒絕策略
        try {
            for (int i = 0; i < 10; i++) {
                executorService.execute(()->{
                    System.out.println(Thread.currentThread().getName()+"辦理業(yè)務(wù)");
                });
            }
        }finally {
            executorService.shutdown();
            Object o = new Object();
        }

線程進(jìn)入線程池的流程:


線程流程

當(dāng)擴(kuò)容來的線程無事做操作最大存活時(shí)間,就會(huì)停掉桩砰,回退到核心線程的數(shù)量拓春。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市亚隅,隨后出現(xiàn)的幾起案子硼莽,更是在濱河造成了極大的恐慌,老刑警劉巖煮纵,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懂鸵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡行疏,警方通過查閱死者的電腦和手機(jī)匆光,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酿联,“玉大人终息,你說我怎么就攤上這事≌耆茫” “怎么了周崭?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長震桶。 經(jīng)常有香客問我休傍,道長,這世上最難降的妖魔是什么蹲姐? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任磨取,我火速辦了婚禮人柿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忙厌。我一直安慰自己凫岖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布逢净。 她就那樣靜靜地躺著哥放,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爹土。 梳的紋絲不亂的頭發(fā)上甥雕,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音胀茵,去河邊找鬼社露。 笑死,一個(gè)胖子當(dāng)著我的面吹牛琼娘,可吹牛的內(nèi)容都是我干的峭弟。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼脱拼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瞒瘸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起熄浓,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤情臭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后玉组,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谎柄,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年惯雳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朝巫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡石景,死狀恐怖劈猿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情潮孽,我是刑警寧澤揪荣,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站往史,受9級(jí)特大地震影響仗颈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一挨决、第九天 我趴在偏房一處隱蔽的房頂上張望请祖。 院中可真熱鬧,春花似錦脖祈、人聲如沸肆捕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慎陵。三九已至,卻和暖如春喻奥,著一層夾襖步出監(jiān)牢的瞬間席纽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國打工映凳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留省艳,地道東北人暇咆。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像云矫,于是被迫代替她去往敵國和親抒和。 傳聞我的和親對(duì)象是個(gè)殘疾皇子矫渔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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

  • 之前我們介紹了線程池的四種拒絕策略,了解了線程池參數(shù)的含義摧莽,那么今天我們來聊聊Java 中常見的幾種線程池庙洼,以及在...
    AnonyStar閱讀 614評(píng)論 0 0
  • 但凡有點(diǎn)開發(fā)經(jīng)驗(yàn)的同學(xué)都知道,頻繁的創(chuàng)建和銷毀線程是會(huì)給系統(tǒng)帶來比較大的性能開銷的镊辕。所以線程池就營運(yùn)而生了油够。那么使...
    FlyerGo閱讀 374評(píng)論 0 0
  • 轉(zhuǎn)載:http://www.reibang.com/p/47e903ab1bec 一、概述 在我們的開發(fā)中經(jīng)常會(huì)...
    郭某人1閱讀 1,083評(píng)論 1 0
  • 本篇文章講述Java中的線程池問題征懈,同樣適用于Android中的線程池使用石咬。本篇文章參考:Java線程池分析,Ja...
    Ruheng閱讀 7,158評(píng)論 1 64
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn)卖哎,但是人生放棄了冒險(xiǎn)鬼悠,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,041評(píng)論 0 4