線程池

一:線程池的特點

1.復(fù)用線程池中的線程,避免線程的重復(fù)創(chuàng)建和銷毀而造成性能的過度消耗。

2.有效的控制線程池的最大并發(fā)數(shù)棒掠,避免對CPU的資源搶奪而造成阻塞者祖。

3.對線程進行簡單的管理立莉,比如定時執(zhí)行和按一定的時間間隔循環(huán)執(zhí)行。


二:線程池的創(chuàng)建跟銷毀

1.execute和submit都是把線程提交到線程池當中七问,但是execute是沒有返回值的void蜓耻,在exetuor中。submit返回有計算結(jié)果的Furture對象械巡,在executeService中刹淌。

2.shutdown和shutdownNow是銷毀線程池的方法。shutdown()方法只會中斷空閑的線程,但是不會影響到已經(jīng)存入隊列的任務(wù),如果需要停止線程池的運行,可以使用awaitTermination()方法.


三:線程池的分類


1.FixedThreadPool

//特點:

//核心線程數(shù)和最大線程數(shù)相同.

//無超時時間

public static ExecutorService newFixedThreadPool(int nThreads) {

? ? ? ? return new ThreadPoolExecutor(

? ? ? ? ? ? ? ? nThreads, nThreads,

? ? ? ? ? ? ? ? 0L, TimeUnit.SECONDS,

? ? ? ? ? ? ? ? new LinkedBlockingQueue()

? ? ? ? );

這是一種數(shù)量固定的線程池,當線程處于空閑的時候,并不會被回收,除非線程池被關(guān)閉.

當所有的線程都處于活動狀態(tài)時,新任務(wù)都會處于等待狀態(tài),直到有線程空閑出來.


2.CacheThreadPool

//無核心線程,并且最大線程數(shù)為int的最大值.

//超時時間為60s

//隊列為SynchronousQueue同步阻塞隊列,隊列中沒有任何容量.只有在有需求的情況下,隊列中才可以試著添加任務(wù).

public static ExecutorService newCacheThreadPool(){

? ? ? ? return? new ThreadPoolExecutor(

? ? ? ? ? ? ? ? 0,Integer.MAX_VALUE,

? ? ? ? ? ? ? ? 60L,TimeUnit.SECONDS,

? ? ? ? ? ? ? ? new SynchronousQueue()

? ? ? ? );

? ? }

(1)比較適合執(zhí)行大量的耗時較少的任務(wù).

(2)當整個線程都處于閑置狀態(tài)時,線程池中的線程都會超時而被停止,這時候的CacheThreadPool幾乎不占任何系統(tǒng)資源的.


3.ScheduledThreadPool


public static ScheduledExecutorService newScheduledThreadPool(int corePoolSzie) {

? ? ? ? return new ScheduledThreadPoolExecutor(corePoolSzie);

? ? }

//核心線程數(shù)是固定的,非核心線程無限大,并且非核心線程數(shù)有10s的空閑存活時間? ? public ScheduledThreadPoolExecutor(int corePoolSize) {

? ? ? ? super(corePoolSize, Integer.MAX_VALUE,

? ? ? ? ? ? ? ? DEFAULT_KEEPALIVE_MILLIS, MILLISECONDS,

? ? ? ? ? ? ? ? new DelayedWorkQueue());

? ? }

它的核心線程數(shù)量是固定的,而非核心線程數(shù)是沒有限制的,并且當非核心線程閑置時會被立即回收.

ScheduThreadPool這類線程池主要用于執(zhí)行定時任務(wù)和具有固定周期的重復(fù)任務(wù).


4.SingleThreadExecutor


public static ExecutorService newSingleThreadExecutor() {

? ? ? ? return Executors.newSingleThreadExecutor();

? ? }

? ? //特點:? ? //線程中只有一個核心線程? ? //并且無超時時間? ? public static ExecutorService newSingleThreadExecutor() {

? ? ? ? return new FinalizableDelegatedExecutorService

? ? ? ? ? ? ? ? (new ThreadPoolExecutor(1, 1,

? ? ? ? ? ? ? ? ? ? ? ? 0L, TimeUnit.MILLISECONDS,

? ? ? ? ? ? ? ? ? ? ? ? new LinkedBlockingQueue()));

? ? }

這類線程池內(nèi)部只有一個核心線程,它確保所有的任務(wù)都在同一個線程中按順序執(zhí)行.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讥耗,一起剝皮案震驚了整個濱河市有勾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌古程,老刑警劉巖柠衅,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異籍琳,居然都是意外死亡菲宴,警方通過查閱死者的電腦和手機贷祈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喝峦,“玉大人势誊,你說我怎么就攤上這事∫ゴ溃” “怎么了粟耻?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長眉踱。 經(jīng)常有香客問我挤忙,道長,這世上最難降的妖魔是什么谈喳? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任册烈,我火速辦了婚禮,結(jié)果婚禮上婿禽,老公的妹妹穿的比我還像新娘赏僧。我一直安慰自己,他們只是感情好扭倾,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布淀零。 她就那樣靜靜地躺著,像睡著了一般膛壹。 火紅的嫁衣襯著肌膚如雪驾中。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天模聋,我揣著相機與錄音肩民,去河邊找鬼。 笑死撬槽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的趾撵。 我是一名探鬼主播侄柔,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼占调!你這毒婦竟也來了暂题?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤究珊,失蹤者是張志新(化名)和其女友劉穎薪者,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剿涮,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡言津,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年攻人,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悬槽。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡怀吻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出初婆,到底是詐尸還是另有隱情蓬坡,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布磅叛,位于F島的核電站屑咳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弊琴。R本人自食惡果不足惜兆龙,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望访雪。 院中可真熱鬧详瑞,春花似錦、人聲如沸臣缀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽精置。三九已至计寇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脂倦,已是汗流浹背番宁。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赖阻,地道東北人蝶押。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像火欧,于是被迫代替她去往敵國和親棋电。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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

  • 前段時間遇到這樣一個問題苇侵,有人問微信朋友圈的上傳圖片的功能怎么做才能讓用戶的等待時間較短赶盔,比如說一下上傳9張圖片,...
    加油碼農(nóng)閱讀 1,203評論 0 2
  • 原文出處http://cmsblogs.com/ 『chenssy』 作為Executor框架中最核心的類,Thr...
    踩在浪花上看浪閱讀 1,227評論 0 4
  • 目前的工作是接觸大數(shù)據(jù)相關(guān)的內(nèi)容榆浓,自己也缺少高并發(fā)的知識于未,剛好前幾天看了flume的源碼,里面也用到了各種線程池內(nèi)...
    等一夏_81f7閱讀 1,410評論 0 0
  • 佛曰:心不動,則不痛烘浦。心不動抖坪,對不起,我辦不到谎倔。 一個人的時候柳击,睡覺都會孤獨到?jīng)]有夢境。 當回憶的潮水涌來時片习,無論...
    愛阿蘭到永遠閱讀 365評論 0 3
  • 君爺把自己的哥們兒叫出來了捌肴,順道把她也喊出來了,他說她永遠是他最喜歡最佩服的班長藕咏,她聽著的時候心情很好状知,被人一直叫...
    每當閱讀 194評論 0 0