5.中斷線程的正確使用方式--》兩階段終止模式講解

綜述:說到中斷線程呕缭,我們java中提供了一個stop方法昆码,不過已經(jīng)不建議使用了冗荸,因為stop方法一劍封喉父阻,線程來不及料理后事

1.兩階段終止模式講解

1)簡述:倆階段模式分成倆個階段覆致,一個是線程T1向T2發(fā)送終止指令侄旬,一個是T2響應終止指令

倆階段終止模式示意圖

2)終止指令:我們java中線程要想處于終止狀態(tài)只能從Runable狀態(tài)到終止狀態(tài),所以終止指令第一個要做的就是讓線程初于Runnable狀態(tài)煌妈,這個步驟是通過interrupt方法完成儡羔。那在此基礎上,線程如何終止呢璧诵?我們優(yōu)雅的終止方式是讓線程執(zhí)行完run方法汰蜘,然后在合適的時機設一個中斷標識位進行中斷!所以終止指令包含interrupt方法和中斷標識之宿!

2.終止線程

1)代碼演示

線程中斷

這個地方我們通過調(diào)用interrupt方法讓線程處于runnable狀態(tài)(并且設置一個中斷標識表示可以中斷)族操,在run方法中判斷線程的中斷標識位(這里的標識位是線程的中斷狀態(tài)),來中斷線程比被,但是如果出現(xiàn)異常色难,jvm會清除中斷狀態(tài),所以我們在catch方法中重新設置中斷狀態(tài)等缀!這里有一個缺點枷莉,就是如果調(diào)用第三方的類庫,沒有正確處理線程的中斷異常尺迂,例如第三方類庫在捕獲到Thread.sleep()方法拋出的中斷異常后笤妙,沒有重新設置線程的中斷狀態(tài)冒掌,那么就會導致線程不能夠正常終止。所以這里建議使用自己的中斷標識蹲盘!如下所示

線程中斷

2)注意點:其實我們正常情況是覺得這個volatile在這里沒有這個必要股毫,因為synchronized保證原子性的同時,也能間接的保證可見性(happens-before原則)召衔,但問題是start方法里又啟動了一個新的線程铃诬,synchronized管不到這個新的線程!所以我們這里volatile一定要加薄嫡,保證可見性

3.線程池的關閉方式

主要是通過倆個方法氧急,一個shutdown,一個shutdownNow毫深!shutdown是一種很保守的方式吩坝,執(zhí)行這個方法之后,線程池就會拒絕接受新的任務哑蔫,但是會把當前線程池中的任務執(zhí)行結(jié)束钉寝!而shutdownNow則是不僅拒絕任務,還會中斷當前線程池中正在執(zhí)行的任務闸迷,不過這些被剝奪執(zhí)行機會的任務會作為shutDownNow()方法的返回值返回嵌纲。其實從本質(zhì)上講,這倆個方法也是用的倆階段終止模式腥沽,只是終止指令的范圍不同逮走,前者只影響阻塞隊列接受任務,后者擴大到線程池中所有的任務今阳!

4. 應用場景 --》監(jiān)控操作

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末师溅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盾舌,更是在濱河造成了極大的恐慌墓臭,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妖谴,死亡現(xiàn)場離奇詭異窿锉,居然都是意外死亡,警方通過查閱死者的電腦和手機膝舅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門嗡载,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仍稀,你說我怎么就攤上這事鼻疮。” “怎么了琳轿?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵判沟,是天一觀的道長。 經(jīng)常有香客問我崭篡,道長挪哄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任琉闪,我火速辦了婚禮迹炼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颠毙。我一直安慰自己斯入,他們只是感情好,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布蛀蜜。 她就那樣靜靜地躺著刻两,像睡著了一般。 火紅的嫁衣襯著肌膚如雪滴某。 梳的紋絲不亂的頭發(fā)上磅摹,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天,我揣著相機與錄音霎奢,去河邊找鬼户誓。 笑死,一個胖子當著我的面吹牛幕侠,可吹牛的內(nèi)容都是我干的帝美。 我是一名探鬼主播,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼晤硕,長吁一口氣:“原來是場噩夢啊……” “哼悼潭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窗骑,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤女责,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后创译,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抵知,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年软族,在試婚紗的時候發(fā)現(xiàn)自己被綠了刷喜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡立砸,死狀恐怖掖疮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情颗祝,我是刑警寧澤浊闪,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布恼布,位于F島的核電站,受9級特大地震影響搁宾,放射性物質(zhì)發(fā)生泄漏折汞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一盖腿、第九天 我趴在偏房一處隱蔽的房頂上張望爽待。 院中可真熱鬧,春花似錦翩腐、人聲如沸鸟款。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽何什。三九已至,卻和暖如春疙筹,著一層夾襖步出監(jiān)牢的瞬間富俄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工而咆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霍比,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓暴备,卻偏偏與公主長得像悠瞬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涯捻,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

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