本節主要討論如何更好中止一個線程。中止線程意味着在線程處理完成任務以前放棄當前操做。java
1.停不了的線程 可能大多數同窗會使用interrupt()來中止線程,可是此方法並不能真的中止線程,僅僅是在當年線程中打了一箇中止標記。 2.判斷線程是不是中止狀態 a)this.interrupted():測試當前線程是否已經中斷,執行後具備將狀態標誌設置爲false,即第二次調用此方法時,返回false. b)this。isInterrupted():測試線程是否已經中斷,不清楚狀態標記。 3.異常法中止線程 建議使用此類方法,能夠將線程中止的異常往上拋,使線程中止的事件獲得傳播 4.在沉睡中中止線程 sleep()+interrupt() 5.暴力中止線程 使用stop()中止。stop()方法在jdk6.0以後的版本已經做廢。由於強制中止線程,有可能使一些請理性工做沒法完成,再者對鎖定的對象進行了解鎖,致使數據不能進行同步處理,出現數據不一致。不建議使用。 6.return中止線程 interrupt() + return