自定義線程池執(zhí)行流程

當(dāng)任務(wù)提交給ThreadPoolExecutor 線程池中

  • 先檢查核心線程數(shù)是否已經(jīng)全部使用肢簿,如果沒(méi)有交由核心線程去執(zhí)行任務(wù)
  • 如果核心線程數(shù)已經(jīng)全部占用幢尚,則將任務(wù)添加到隊(duì)列里面
  • 如果隊(duì)列已經(jīng)占滿或链,比較當(dāng)前線程池的中線程的數(shù)量是不是與超過(guò)maximumPoolSize
  • 如果沒(méi)有查過(guò)則創(chuàng)建線程去執(zhí)行念脯,也就是說(shuō)線程池最多可以接受多少任務(wù)呢派阱?就是maximumPoolSize+隊(duì)列的大小。
  • 當(dāng)線程池中的線程的數(shù)量大于corePoolSize數(shù)量有空閑線程則執(zhí)行回收揩环,回收時(shí)間是keepAliveTime,單位是unit幅虑,都是初始化的時(shí)候設(shè)置的丰滑。
//三種阻塞隊(duì)列:
    BlockingQueue<Runnable> workQueue = null;
    workQueue = new ArrayBlockingQueue<>(5);//基于數(shù)組的先進(jìn)先出隊(duì)列,有界
    workQueue = new LinkedBlockingQueue<>();//基于鏈表的先進(jìn)先出隊(duì)列倒庵,無(wú)界
    workQueue = new SynchronousQueue<>();//無(wú)緩沖的等待隊(duì)列褒墨,無(wú)界
//四種拒絕策略:
    RejectedExecutionHandler rejected = null;
    rejected = new ThreadPoolExecutor.AbortPolicy();//默認(rèn),隊(duì)列滿了丟任務(wù)拋出異常
    rejected = new ThreadPoolExecutor.DiscardPolicy();//隊(duì)列滿了丟任務(wù)不異常
    rejected = new ThreadPoolExecutor.DiscardOldestPolicy();//將最早進(jìn)入隊(duì)列的任務(wù)刪擎宝,之后再嘗試加入隊(duì)列
    rejected = new ThreadPoolExecutor.CallerRunsPolicy();//如果添加到線程池失敗郁妈,那么主線程會(huì)自己去執(zhí)行該任務(wù)
//五種線程池:
    ExecutorService threadPool = null;
    threadPool = Executors.newCachedThreadPool();//有緩沖的線程池,線程數(shù) JVM 控制
    threadPool = Executors.newFixedThreadPool(3);//固定大小的線程池
    threadPool = Executors.newScheduledThreadPool(2);
    threadPool = Executors.newSingleThreadExecutor();//單線程的線程池绍申,只有一個(gè)線程在工作
    threadPool = new ThreadPoolExecutor();//默認(rèn)線程池噩咪,可控制參數(shù)比較多 

多線程編程基礎(chǔ)知識(shí):

/**
了解JDK Executors線程池嗎?
知道JDK提供了哪些默認(rèn)的實(shí)現(xiàn)嗎?
看過(guò)阿里巴巴java開(kāi)發(fā)手冊(cè)嗎极阅?知道為啥不允許使用默認(rèn)的實(shí)現(xiàn)嗎胃碾?
你們沒(méi)有用默認(rèn)的吧?那來(lái)介紹一下你們自定義線程池的幾個(gè)常用參數(shù)唄?
你這個(gè)幾個(gè)參數(shù)的值是怎么得來(lái)的呀筋搏?算出來(lái)的仆百?怎么算出來(lái)的?
線程池里面的任務(wù)是IO密集型的還是計(jì)算密集型的呢奔脐?
好俄周,現(xiàn)在我們有一個(gè)自定義線程池了吁讨,來(lái)說(shuō)一下你這個(gè)線程池的工作流程唄?
那你這個(gè)線程池滿了怎么辦呀峦朗?拒絕建丧?咋拒絕?有哪些拒絕策略呢甚垦?
別緊張,隨便說(shuō)兩個(gè)就行茶鹃。
*/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市艰亮,隨后出現(xiàn)的幾起案子闭翩,更是在濱河造成了極大的恐慌,老刑警劉巖迄埃,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疗韵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡侄非,警方通過(guò)查閱死者的電腦和手機(jī)蕉汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逞怨,“玉大人者疤,你說(shuō)我怎么就攤上這事〉猓” “怎么了驹马?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)除秀。 經(jīng)常有香客問(wèn)我糯累,道長(zhǎng),這世上最難降的妖魔是什么册踩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任泳姐,我火速辦了婚禮,結(jié)果婚禮上暂吉,老公的妹妹穿的比我還像新娘胖秒。我一直安慰自己,他們只是感情好慕的,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布扒怖。 她就那樣靜靜地躺著,像睡著了一般业稼。 火紅的嫁衣襯著肌膚如雪盗痒。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音俯邓,去河邊找鬼骡楼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛稽鞭,可吹牛的內(nèi)容都是我干的鸟整。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼朦蕴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼篮条!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起吩抓,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涉茧,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后疹娶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伴栓,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年雨饺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钳垮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡额港,死狀恐怖饺窿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情移斩,我是刑警寧澤肚医,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站叹哭,受9級(jí)特大地震影響忍宋,放射性物質(zhì)發(fā)生泄漏痕貌。R本人自食惡果不足惜风罩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舵稠。 院中可真熱鬧超升,春花似錦、人聲如沸哺徊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)落追。三九已至盈滴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巢钓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工病苗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人症汹。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓硫朦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親背镇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子咬展,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355