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