線程池的簡單認識

1烟馅、Java線程池實現了一個Java高并發(fā)的笔横、Java多線程的铃芦、可管理的統(tǒng)一調度器涮较。空間換時間的原則

? ? ? ? 首先是java.util.concurrent.Executors 工作中最常用和最熟知的啤誊。

? ? ? ? Executors岳瞭,是一個線程的工廠類,方便快速地創(chuàng)建很多線程池蚊锹,也可以說是一個線程池的工具類瞳筏,配置一個線程池是比較復雜的,尤其是對于線程池的原理并不是很清楚的情況下牡昆,很有可能配置的線程池不是最優(yōu)的姚炕,因此,在Executors類里面提供了一些靜態(tài)工廠類丢烘,生成一些常用的線程池柱宦,常用的線程池有一下三種:

? ????? (1)、newSingleThreadExecutor:創(chuàng)建一個單線程的線程池

? ? ????(2)铅协、newFixedThreadPool:創(chuàng)建固定大小的線程池? ?ThreadPoolExecutor

? ????? (3)捷沸、newCachedThreadPool:創(chuàng)建一個可緩存的線程池

? ? ? ? 首先看一下ThreadPoolExecutor挑一個最復雜的構造來講

? ? 1摊沉、corePoolSize:核心線程池狐史,剛創(chuàng)建的條件下,線程池中沒有線程说墨,除非調用prestartAllCoreThreads方法或者prestartCoreThread方法骏全,預創(chuàng)建線程,即任務沒到來之前尼斧,就創(chuàng)建核心線程池姜贡,在默認條件下,創(chuàng)建了線程池后棺棵,線程池中的線程為0楼咳,當有任務來到之后熄捍,就會創(chuàng)建一個線程去執(zhí)行,當線程中的線程數目達到corePoolSize后母怜,就會把達到的人物放到緩存隊列中余耽;

? ? 2、maximumPoolSize:線程池最大線程數苹熏,表示線程池中最多能創(chuàng)建多少個線程碟贾,超過corePoolSize的線程在完成執(zhí)行完成,并超過生存時間之后會被自動釋放

? ? 3轨域、keepAliveTime:表示線程沒有任務執(zhí)行時袱耽,最多保持多久時間會被終止。默認條件下干发,線程數大于corePoolSize的線程朱巨,在沒有空閑時間超過keepAliveTime時間后,就會被消除枉长,但是蔬崩,如果強行調用allowCoreThreadTimeOut(boolean)方法,線程池中線程數不大于corePoolSize時搀暑,也會釋放未執(zhí)行任務的線程沥阳,知道線程數為0

? ? 4、TimeUnit:keepAliveTime的時間的單位

? ? 5自点、BlockingQueue:阻塞隊列桐罕,用來存儲等待執(zhí)行的任務,這個參數往往會對線程池產生重大影響桂敛,就是前面講過的幾種選擇

? ? 6功炮、ThreadFactory:線程工廠,主要用來創(chuàng)建線程术唬,默認就是Executors.defaultThreadFactory()薪伏,用來創(chuàng)建里面的線程。

? ? 7粗仓、RejectedExecutionHandler:表示當拒絕處理任務時的策略嫁怀,也是可以自定義的

線程池的拒絕策略:

? ? 如果線程池的線程已經飽和,并且任務隊列也已經滿借浊,那么就需要做丟棄處理塘淑,RejectedExecutionHandler這個類就是用來處理被丟棄的線程的異常處理接口;

? ? JDK里面RejectedExecutionHandler提供了4中方式來處理任務拒絕策略

? ? ? ? AbortPolicy:直接拋出異常蚂斤;

? ? ? ? CallerRunsPolicy:只用調用者所在線程來運行任務

? ? ? ? DiscardOldestPolicy:丟棄隊列里最近的一個任務存捺,并執(zhí)行當前任務

? ? ? ? DiscardPolicy:不處理,丟棄掉

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末曙蒸,一起剝皮案震驚了整個濱河市捌治,隨后出現的幾起案子岗钩,更是在濱河造成了極大的恐慌,老刑警劉巖肖油,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凹嘲,死亡現場離奇詭異,居然都是意外死亡构韵,警方通過查閱死者的電腦和手機周蹭,發(fā)現死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疲恢,“玉大人凶朗,你說我怎么就攤上這事∠匀” “怎么了棚愤?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長杂数。 經常有香客問我宛畦,道長,這世上最難降的妖魔是什么揍移? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任次和,我火速辦了婚禮,結果婚禮上那伐,老公的妹妹穿的比我還像新娘踏施。我一直安慰自己,他們只是感情好罕邀,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布畅形。 她就那樣靜靜地躺著,像睡著了一般诉探。 火紅的嫁衣襯著肌膚如雪日熬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天肾胯,我揣著相機與錄音竖席,去河邊找鬼。 笑死阳液,一個胖子當著我的面吹牛怕敬,可吹牛的內容都是我干的。 我是一名探鬼主播帘皿,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼畸陡!你這毒婦竟也來了鹰溜?” 一聲冷哼從身側響起虽填,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曹动,沒想到半個月后斋日,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡墓陈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年恶守,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贡必。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡兔港,死狀恐怖,靈堂內的尸體忽然破棺而出仔拟,到底是詐尸還是另有隱情衫樊,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布利花,位于F島的核電站科侈,受9級特大地震影響,放射性物質發(fā)生泄漏炒事。R本人自食惡果不足惜臀栈,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挠乳。 院中可真熱鬧挂脑,春花似錦、人聲如沸欲侮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽威蕉。三九已至刁俭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間韧涨,已是汗流浹背牍戚。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虑粥,地道東北人如孝。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像娩贷,于是被迫代替她去往敵國和親第晰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內容