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: 使用退出標記,run方法執(zhí)行完畢,線程正常退出。
2: 使用stop()方法,已過時的方法,不推薦。
3: 使用interrupt()方法中斷線程。
interrupt()
單獨調(diào)用這個方法并不能中斷線程,只是打了一個中斷狀態(tài)的標記?;蛘哒f是將線程狀態(tài)更改為中斷狀態(tài)。
中斷線程可以通過以下幾種方法。
- 在線程內(nèi)部拋出異常。
- 在線程內(nèi)部使用return結(jié)束線程。
總結(jié)
以上所述是小編給大家介紹的java多線程之停止線程的方法實例代碼詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
相關(guān)文章
Spring MVC+MyBatis+MySQL實現(xiàn)分頁功能實例
分頁功能是我們?nèi)粘i_發(fā)中經(jīng)常會遇到的,下面這篇文章主要給大家介紹了Spring MVC+MyBatis+MySQL實現(xiàn)分頁功能的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-06-06使用Netty實現(xiàn)類似Dubbo的遠程接口調(diào)用的實現(xiàn)方法
本文介紹了如何使用Netty框架實現(xiàn)類似Dubbo的遠程接口調(diào)用,通過自定義編解碼器、通信協(xié)議和服務(wù)注冊中心等實現(xiàn)遠程通信和服務(wù)治理。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-04-04SpringSecurity從數(shù)據(jù)庫中獲取用戶信息進行驗證的案例詳解
這篇文章主要介紹了SpringSecurity從數(shù)據(jù)庫中獲取用戶信息進行驗證的案例詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01JAVA參數(shù)傳遞方式實例淺析【按值傳遞與引用傳遞區(qū)別】
這篇文章主要介紹了JAVA參數(shù)傳遞方式,結(jié)合實例形式分析了java按值傳遞與引用傳遞區(qū)別及相關(guān)操作注意事項,需要的朋友可以參考下2020-05-05