8 多線程

概念

進程:具有一定獨立功能的程序關于某個數(shù)據(jù)集合上的一次運行活動,進程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。

線程:是進程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進程更小的能獨立運行的基本單位奄喂。

關系:1.相對進程而言,線程是一個更加接近于執(zhí)行體的概念永脓,是進程的一部分;

? ? ? ? ? ?2.線程可以與同進程中的其他線程共享數(shù)據(jù)脯倒,但擁有自己的椊鹱伲空間不从,擁有獨立的執(zhí)行序列惜姐;

? ? ? ? ? ?3.一個程序至少有一個進程,一個進程至少有一個線程;

多線程:包含多個能并發(fā)運行的線程椿息,能充分利用CPU歹袁。


線程的生命周期

線程是一個動態(tài)執(zhí)行的過程,它也有一個從產(chǎn)生到死亡的過程寝优。

生命周期

新建狀態(tài):創(chuàng)建線程對象后(new Thread或其子類)条舔,該線程處于新建狀態(tài),直到start()乏矾;

就緒狀態(tài):線程對象調(diào)用start()方法后孟抗,該線程進入就緒狀態(tài),處于就緒隊列中钻心,等待JVM線程調(diào)度器調(diào)度凄硼;

運行狀態(tài):就緒狀態(tài)線程獲取到CPU資源,執(zhí)行run()方法捷沸,該線程處于運行狀態(tài)摊沉,此時可變?yōu)樽枞⒕途w痒给、或死亡狀態(tài)说墨;

阻塞狀態(tài):如果線程執(zhí)行sleep()、suspend()等方法苍柏,失去所占用資源尼斧,該線程從運行--》阻塞狀態(tài),睡眠時間到達或獲得資源進入就緒狀態(tài)试吁;

? ?????????????????等待阻塞:運行狀態(tài)中的線程執(zhí)行 wait() 方法突颊,使線程進入到等待阻塞狀態(tài);

? ? ? ? ? ? ? ? ? ?同步阻塞:線程在獲取 synchronized 同步鎖失敗(因為同步鎖被其他線程占用);

? ? ? ? ? ? ? ? ? ?其他阻塞:通過調(diào)用線程的 sleep() 或 join() 發(fā)出了 I/O 請求時律秃,線程就會進入到阻塞狀態(tài)爬橡, ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?當sleep() 狀態(tài)超時,join() 等待線程終止或超時棒动,或者 I/O 處理完畢糙申,線程重新轉(zhuǎn)入就緒狀態(tài);

死亡狀態(tài):一個運行狀態(tài)的線程完成任務或者其他終止條件發(fā)生時船惨,該線程就切換到終止狀態(tài)柜裸;


線程的優(yōu)先級

意義:每一個 Java 線程都有一個優(yōu)先級,這樣有助于操作系統(tǒng)確定線程的調(diào)度順序粱锐;

級別:用1-10之間的整數(shù)表示疙挺,數(shù)值越大優(yōu)先級越高,默認的優(yōu)先級為5怜浅;

注意:線程優(yōu)先級不能保證線程執(zhí)行的順序铐然,優(yōu)先級高的線程獲取CPU資源的概率較大,優(yōu)先級低的并非沒機會執(zhí)行恶座;


線程的創(chuàng)建

Java 提供了三種創(chuàng)建線程的方法:

????????1.通過實現(xiàn) Runnable 接口搀暑;

????????2.通過繼承 Thread 類本身;

????????3.通過 Callable 和 Future 創(chuàng)建線程跨琳;

一自点、實現(xiàn)Runnable接口

核心:Thread(Runnable threadOb); ? ?//創(chuàng)建Thread類傳入實現(xiàn)了runnable接口的實現(xiàn)類(重寫run方法)

實現(xiàn)runnable

二、繼承Thread類

核心:創(chuàng)建繼承了Thread類的子類實例(重寫run方法)脉让,調(diào)用start()桂敛;(本質(zhì)上也是實現(xiàn)了runnable接口)

繼承Thread類

三、實現(xiàn)?Callable 接口

核心:Callable接口類似Runnable接口溅潜,不同點在于Callable有返回值术唬,使用時實現(xiàn)類實例需要Future包裹一層。

實現(xiàn)Callable接口

總結(jié):1.繼承Thread伟恶,特點:單繼承問題碴开,獲取當前線程可直接用this,無需使用Thread.currentThread() 博秫;

? ? ? ? ? ?2.實現(xiàn)Runnable潦牛,特點:傳入Thread構造;

? ? ? ? ? ?3.實現(xiàn)Callable挡育,特點:有返回值巴碗,F(xiàn)utureTask包裹后傳入Thread構造;


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末即寒,一起剝皮案震驚了整個濱河市橡淆,隨后出現(xiàn)的幾起案子召噩,更是在濱河造成了極大的恐慌,老刑警劉巖逸爵,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件具滴,死亡現(xiàn)場離奇詭異,居然都是意外死亡师倔,警方通過查閱死者的電腦和手機构韵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趋艘,“玉大人疲恢,你說我怎么就攤上這事〈呻剩” “怎么了显拳?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搓萧。 經(jīng)常有香客問我杂数,道長,這世上最難降的妖魔是什么矛绘? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任耍休,我火速辦了婚禮刃永,結(jié)果婚禮上货矮,老公的妹妹穿的比我還像新娘。我一直安慰自己斯够,他們只是感情好囚玫,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著读规,像睡著了一般抓督。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上束亏,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天铃在,我揣著相機與錄音,去河邊找鬼碍遍。 笑死定铜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的怕敬。 我是一名探鬼主播揣炕,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼东跪!你這毒婦竟也來了畸陡?” 一聲冷哼從身側(cè)響起鹰溜,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丁恭,沒想到半個月后曹动,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡牲览,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年仁期,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竭恬。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡跛蛋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痊硕,到底是詐尸還是另有隱情赊级,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布岔绸,位于F島的核電站理逊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盒揉。R本人自食惡果不足惜晋被,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刚盈。 院中可真熱鬧羡洛,春花似錦、人聲如沸藕漱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肋联。三九已至威蕉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橄仍,已是汗流浹背韧涨。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侮繁,地道東北人虑粥。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像鼎天,于是被迫代替她去往敵國和親舀奶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359