Java多線程2:線程池的使用

聲明:原創(chuàng)文章奔穿,轉(zhuǎn)載請注明出處。http://www.reibang.com/u/e02df63eaa87

一茵乱、線程池的使用

1、單線程線程池

public class SingleThread {
    public static void main(String[] args) {
        ExecutorServic eexecutor = Executors.newSingleThreadExecutor();
        for (inti = 0; i < 5; i++) {
            final int no = i;
            Runnable runnable = newRunnable() {
                public void run() {
                    System.out.println(no);
                }
            };
            executor.execute(runnable);
        }
        executor.shutdown();
    }
}

2椒拗、固定線程數(shù)的線程池

public class FixedThreadPool {
    public static void main(String[] args) {
        ExecutorServiceexecutor = Executors.newFixedThreadPool(5);
        for (inti = 0; i < 20; i++) {
            finalintno = i;
            Runnablerunnable = newRunnable() {
                publicvoidrun() {
                    try {
                        System.out.println("In:" + no);
                        Thread.sleep(1000);
                        System.out.println("Out:" + no);
                    } catch(Exceptione) {}
                }
            };
            executor.execute(runnable);
        }
        executor.shutdown();
    }
}

3、定時周期執(zhí)行指定的任務(wù)

public class ScheduledThread {
    public static void main(String[] args) {
        //以固定延遲時間進(jìn)行執(zhí)行,本次執(zhí)行完成后蚀苛,到達(dá)延遲時間才會執(zhí)行新的任務(wù)
        ScheduledExecutorServiceexecutor = Executors.newScheduledThreadPool(1);
        executor.scheduleWithFixedDelay(newPrintThread(1), // 任務(wù)名字
        0, // 初始化延時0秒后開始執(zhí)行
        1, // 每隔1秒執(zhí)行一次
        TimeUnit.SECONDS // 時間單位
        );
    }
}

二在验、線程池的好處

1、四個好處

(1)降低資源消耗:降低線程的創(chuàng)建和銷毀產(chǎn)生的消耗堵未。

(2)提高響應(yīng)速度:任務(wù)達(dá)到時腋舌,任務(wù)可以不需要等到線程創(chuàng)建就能立即執(zhí)行。

(3)提高線程的可管理性:統(tǒng)一分配渗蟹,調(diào)優(yōu)和監(jiān)控块饺。

(4)防止服務(wù)器過載,形成內(nèi)存溢出雌芽,或CPU耗盡授艰。

2、線程池技術(shù)提高程序的性能

多線程技術(shù)主要解決處理器單元內(nèi)多個線程執(zhí)行的問題世落,可以顯著減少處理器單元的閑置時間淮腾,增加處理器單元的吞吐能力。

3屉佳、線程池的應(yīng)用范圍

(1)需要大量的線程來完成任務(wù)谷朝,且完成任務(wù)的時間比較短。

(2)對性能要求苛刻的應(yīng)用武花。

(3)接收突發(fā)性的大量請求圆凰,但不至于使服務(wù)器因此產(chǎn)生大量的線程應(yīng)用。

三体箕、線程池的工作機(jī)制和原理

1专钉、線程池核心的兩個隊列:

  • 線程等待池,即線程隊列BlockingQueue干旁。
  • 任務(wù)處理池驶沼,即正在工作的Thread列表。

2争群、線程池的核心參數(shù):

  • 核心池的大小回怜,即固定大小。
  • 最大處理線程池數(shù)换薄,當(dāng)線程池里面的線程數(shù): 核心池大小 < 線程數(shù) < 最大處理線程池數(shù)玉雾,會動態(tài)創(chuàng)建與回收線程池里面的線程資源(如果當(dāng)前核心池的線程都在工作,并且還有任務(wù)時轻要,會臨時增加的線程數(shù)
    )复旬。

3、線程池任務(wù)拒絕策略

(1)AbortPolicy:直接拋出異常冲泥。

(2)CallerRunPolicy:只用調(diào)用者所在線程來運行任務(wù)驹碍。

(3)DiscardOldestPolicy:丟棄隊列中的最舊的一個任務(wù)壁涎,并執(zhí)行當(dāng)前任務(wù)。

(4)DiscardPolicy:不處理志秃,丟棄掉怔球。

四、注意

1浮还、線程池要在單例模式下使用竟坛,否則會產(chǎn)生一堆線程池。

2钧舌、線程池大小設(shè)置很大担汤,導(dǎo)致請求過載。

3洼冻、注意死鎖崭歧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碘赖,隨后出現(xiàn)的幾起案子驾荣,更是在濱河造成了極大的恐慌,老刑警劉巖普泡,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件播掷,死亡現(xiàn)場離奇詭異,居然都是意外死亡撼班,警方通過查閱死者的電腦和手機(jī)歧匈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砰嘁,“玉大人件炉,你說我怎么就攤上這事“妫” “怎么了斟冕?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長缅阳。 經(jīng)常有香客問我磕蛇,道長,這世上最難降的妖魔是什么十办? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任秀撇,我火速辦了婚禮,結(jié)果婚禮上向族,老公的妹妹穿的比我還像新娘呵燕。我一直安慰自己,他們只是感情好件相,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布再扭。 她就那樣靜靜地躺著氧苍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泛范。 梳的紋絲不亂的頭發(fā)上候引,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音敦跌,去河邊找鬼。 笑死逛揩,一個胖子當(dāng)著我的面吹牛柠傍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辩稽,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惧笛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了逞泄?” 一聲冷哼從身側(cè)響起患整,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喷众,沒想到半個月后各谚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡到千,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年昌渤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片憔四。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡膀息,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出了赵,到底是詐尸還是另有隱情潜支,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布柿汛,位于F島的核電站冗酿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苛茂。R本人自食惡果不足惜已烤,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妓羊。 院中可真熱鬧胯究,春花似錦、人聲如沸躁绸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至剥哑,卻和暖如春硅则,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背株婴。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工怎虫, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人困介。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓大审,卻偏偏與公主長得像,于是被迫代替她去往敵國和親座哩。 傳聞我的和親對象是個殘疾皇子徒扶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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