線程-中斷

線程-中斷
  • 中斷(interrupt)只是線程的一種狀態(tài),它不會拋出中斷異常(throw InterruptedException),但是在Object.waitThread.Sleep、join等方法會監(jiān)控線程的中斷狀態(tài),如果中斷狀態(tài)是true則拋出中斷異常。
  • 中斷不會讓線程結(jié)束,它只是讓處于阻塞的線程,跳出當(dāng)前狀態(tài),向下流轉(zhuǎn)。當(dāng)然在Thread的設(shè)計者最初目的是通過中斷結(jié)束當(dāng)前線程,可是實際業(yè)務(wù)中,一般不會直接讓線程直接結(jié)束,而是通過異常捕獲機制,捕獲之后做出相關(guān)的業(yè)務(wù)處理。
  • 在使用中斷方法時,一定要注意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()的意思是,設(shè)置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ā)布平臺,僅提供信息存儲服務(wù)。

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

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

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