線程-中斷

線程-中斷
  • 中斷(interrupt)只是線程的一種狀態(tài),它不會拋出中斷異常(throw InterruptedException),但是在Object.waitThread.Sleep、join等方法會監(jiān)控線程的中斷狀態(tài),如果中斷狀態(tài)是true則拋出中斷異常。
  • 中斷不會讓線程結(jié)束,它只是讓處于阻塞的線程,跳出當前狀態(tài),向下流轉(zhuǎn)。當然在Thread的設計者最初目的是通過中斷結(jié)束當前線程,可是實際業(yè)務中,一般不會直接讓線程直接結(jié)束,而是通過異常捕獲機制,捕獲之后做出相關的業(yè)務處理。
  • 在使用中斷方法時,一定要注意Thread類中的
    public static boolean interrupted() {
        return currentThread().isInterrupted(true);
    }
     public boolean isInterrupted() {
        return isInterrupted(false);
    }
    private native boolean isInterrupted(boolean ClearInterrupted);
    

其中static boolean interrupted()是清除中斷狀態(tài),也就是執(zhí)行后,interrupt=false。
boolean isInterrupted()的意思是,設置interrupt=true。兩者完全相反的含義。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 前面的幾篇文章主要介紹了線程的一些最基本的概念,包括線程的間的沖突及其解決辦法,以及線程間的協(xié)作機制。本篇主要來學...
    Single_YAM閱讀 548評論 0 3
  • 為什么要中斷 Java中沒有一種安全的搶占方法來停止線程,也沒有安全的搶占方式停止任務,只有一些協(xié)作機制。 更好的...
    zlcook閱讀 628評論 0 0
  • 取消任務的方式 Java中沒有提供任何機制來安全地終止線程,但是提供了中斷(Interruption)協(xié)作機制,能...
    Showdy閱讀 562評論 0 6
  • 中斷線程 thread.interrupt()用來中斷線程,即將線程的中斷狀態(tài)位設置為true,注意中斷操作并不會...
    劉建會閱讀 2,621評論 0 1
  • 1.推遲滿足感就像是一個讀書一樣啊,只有吃苦認真讀書,才能上個好學校,努力不一定成功,但是不努力一定不成功,其實就...
    小愛歌呀閱讀 185評論 0 0

友情鏈接更多精彩內(nèi)容