java多線程之停止線程的方法實(shí)例代碼詳解
和線程停止相關(guān)的三個(gè)方法
/* 中斷線程。如果線程被wait(),join(),sleep()等方法阻塞,調(diào)用interrupt()會(huì)清除線程中斷狀態(tài),并收到InterruptedException異常。另外interrupt();對(duì)于isAlive()返回false的線程不起作用。 */ public void interrupt(); /* 靜態(tài)方法,判斷線程中斷狀態(tài),并且會(huì)清除線程的中斷狀態(tài)。所以連續(xù)多次調(diào)用該方法,第二次之后必定返回false。另外,isAlive()用于判斷線程是否處于存活狀態(tài),如果isAlive()返回false,interrupted()也必定返回false。 */ public static boolean interrupted(); /* 判斷線程中斷狀態(tài),但不會(huì)清除線程中斷狀態(tài)。另外,isAlive()用于判斷線程是否處于存活狀態(tài),如果isAlive()返回false,interrupted()也必定返回false。 */
public boolean isInterrupted();線程停止的幾種情況:
1: 使用退出標(biāo)記,run方法執(zhí)行完畢,線程正常退出。
2: 使用stop()方法,已過(guò)時(shí)的方法,不推薦。
3: 使用interrupt()方法中斷線程。
interrupt()
單獨(dú)調(diào)用這個(gè)方法并不能中斷線程,只是打了一個(gè)中斷狀態(tài)的標(biāo)記。或者說(shuō)是將線程狀態(tài)更改為中斷狀態(tài)。
中斷線程可以通過(guò)以下幾種方法。
- 在線程內(nèi)部拋出異常。
- 在線程內(nèi)部使用return結(jié)束線程。
總結(jié)
以上所述是小編給大家介紹的java多線程之停止線程的方法實(shí)例代碼詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
Spring mvc JSON數(shù)據(jù)交換格式原理解析
這篇文章主要介紹了Spring mvc JSON數(shù)據(jù)交換格式原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Java 對(duì)象序列化 NIO NIO2詳細(xì)介紹及解析
這篇文章主要介紹了Java 對(duì)象序列化 NIO NIO2詳細(xì)介紹及解析的相關(guān)資料,序列化機(jī)制可以使對(duì)象可以脫離程序的運(yùn)行而對(duì)立存在,需要的朋友可以參考下2017-02-02
Java11中基于嵌套關(guān)系的訪問(wèn)控制優(yōu)化詳解
Java(和其他語(yǔ)言)通過(guò)內(nèi)部類支持嵌套類,要使其正常工作,需要編譯器執(zhí)行一些技巧,下面這篇文章主要給大家介紹了關(guān)于Java11中基于嵌套關(guān)系的訪問(wèn)控制優(yōu)化的相關(guān)資料,需要的朋友可以參考下2022-01-01
基于SpringBoot服務(wù)端表單數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)方式
這篇文章主要介紹了基于SpringBoot服務(wù)端表單數(shù)據(jù)校驗(yàn)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Java實(shí)戰(zhàn)玩具商城的前臺(tái)與后臺(tái)實(shí)現(xiàn)流程
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+JSP+SSM+Springboot+Jsp+maven+Mysql實(shí)現(xiàn)一個(gè)玩具商城系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2022-01-01

