線程的啟動方式以及SingleThreadExecutor

啟動線程方式一: 線程可以驅(qū)動任務(wù),因此需要一種描述任務(wù)的方式,可以由Runnable接口來提供,要想定義任務(wù),只需要實現(xiàn)Runnable接口并編寫run()方法,使得該任務(wù)執(zhí)行你的命令.

private static class LiftOff implements Runnable{

private int count = 10000;

@Override

public void run() {

while(count-- > 0){

System.out.println("count :"+count);

Thread.yield();

}

public static void main(String[] args) {

LiftOff liftOff = new LiftOff();

liftOff.run();

}

啟動線程方式二: 將Runnable對象轉(zhuǎn)變?yōu)楣ぷ魅蝿?wù)的傳統(tǒng)方式是把它提交給一個Thread構(gòu)造器,Thread構(gòu)造器只需要一個Runnable對象,然后調(diào)用start方法就可以啟動

Thread t = new Thread(new LiftOff());

t.start();

啟動線程方式三:使用Executor,創(chuàng)建線程池對象, 即ExecutorService 對象茴厉,然后調(diào)用exec()方法,

ExecutorService exec = Executors.newCachedThreadPool();

for(int i = 0; i < 5; i++)

exec.execute(new LiftOff());

exec.shutdown();

詳細介紹第三種方式凯肋,Executor的三個方法:

1门烂,newFixedThreadPool

2宙枷,newSingleThreadExecutor

3钙畔,newCachedThreadPool

如果向SingleThreadExecutor提交了多個任務(wù)甚疟,那么這些任務(wù)將排隊仗岖,每個任務(wù)都會在下一個任務(wù)開始之前運行結(jié)束逃延,所有的任務(wù)將使用相同的線程,下面的實例中轧拄,SingleThreadExecutor會序列化所有提交給它的任務(wù)揽祥,并會維護它自己的任務(wù)隊列。

ExecutorService exec = Executors.newSingleThreadExecutor();

for(int i = 0; i < 5; i++)

exec.execute(new LiftOff());

exec.shutdown();

另外應(yīng)用場景:假設(shè)你有大量的線程檩电,那他們運行的任務(wù)將使用文件系統(tǒng)拄丰,你可以用SingleThreadExecutor來運行這些線程,以確保任意時刻在任務(wù)線程中都只有唯一的任務(wù)在運行俐末,在這種方式中料按,你不需要在共享資源上處理同步,同時不會過度使用文件系統(tǒng)卓箫,有時更好的解決方案是在資源上同步载矿,但是SingleThreadExecutor可以讓你省去只是為了維持某些原型而進行的各種協(xié)調(diào)努力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烹卒,一起剝皮案震驚了整個濱河市闷盔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甫题,老刑警劉巖馁筐,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異坠非,居然都是意外死亡敏沉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門炎码,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盟迟,“玉大人,你說我怎么就攤上這事潦闲≡懿ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵歉闰,是天一觀的道長辖众。 經(jīng)常有香客問我,道長和敬,這世上最難降的妖魔是什么凹炸? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮昼弟,結(jié)果婚禮上啤它,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好变骡,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布离赫。 她就那樣靜靜地躺著,像睡著了一般塌碌。 火紅的嫁衣襯著肌膚如雪渊胸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天誊爹,我揣著相機與錄音蹬刷,去河邊找鬼。 笑死频丘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泡态。 我是一名探鬼主播搂漠,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼某弦!你這毒婦竟也來了桐汤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤靶壮,失蹤者是張志新(化名)和其女友劉穎怔毛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腾降,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡拣度,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了螃壤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抗果。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奸晴,靈堂內(nèi)的尸體忽然破棺而出冤馏,到底是詐尸還是另有隱情,我是刑警寧澤寄啼,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布逮光,位于F島的核電站,受9級特大地震影響墩划,放射性物質(zhì)發(fā)生泄漏涕刚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一走诞、第九天 我趴在偏房一處隱蔽的房頂上張望副女。 院中可真熱鬧,春花似錦、人聲如沸碑幅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沟涨。三九已至恤批,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裹赴,已是汗流浹背喜庞。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棋返,地道東北人延都。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像睛竣,于是被迫代替她去往敵國和親晰房。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

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

  • 前段時間遇到這樣一個問題射沟,有人問微信朋友圈的上傳圖片的功能怎么做才能讓用戶的等待時間較短殊者,比如說一下上傳9張圖片,...
    加油碼農(nóng)閱讀 1,203評論 0 2
  • 1、new Thread的弊端 執(zhí)行一個異步任務(wù)你還只是如下new Thread嗎验夯? ``` new Thread...
    Jannonx閱讀 2,761評論 0 6
  • 一.線程與進程相關(guān) 1.進程 ??定義:進程是具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動猖吴,進程是操作系統(tǒng)分...
    Geeks_Liu閱讀 1,713評論 2 4
  • 1、線程安全與鎖 線程安全的本質(zhì)挥转,在于 存在了共享的可變狀態(tài) status, 在多線程共同操作狀態(tài)變量時海蔽,當(dāng)計算的...
    軒居晨風(fēng)閱讀 354評論 1 1
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法扁位,內(nèi)部類的語法准潭,繼承相關(guān)的語法,異常的語法域仇,線程的語...
    子非魚_t_閱讀 31,633評論 18 399