1. 程式人生 > >Java多執行緒程式設計核心(1)

Java多執行緒程式設計核心(1)

Java多執行緒程式設計核心(1)

停止執行緒

本節主要討論如何更好停止一個執行緒。停止執行緒意味著線上程處理完成任務之前放棄當前操作。

1.停不了的執行緒
可能大多數同學會使用interrupt()來停止執行緒,但是此方法並不能真的停止執行緒,僅僅是在當年執行緒中打了一個停止標記。

2.判斷執行緒是否是停止狀態
a)this.interrupted():測試當前執行緒是否已經中斷,執行後具有將狀態標誌設定為false,即第二次呼叫此方法時,返回false.
b)this。isInterrupted():測試執行緒是否已經中斷,不清楚狀態標記。

3.異常法停止執行緒
建議使用此類方法,可以將執行緒停止的異常往上拋,使執行緒停止的事件得到傳播

4.在沉睡中停止執行緒
sleep()+interrupt()

5.暴力停止執行緒
使用stop()停止。stop()方法在jdk6.0之後的版本已經作廢。因為強制停止執行緒,有可能使一些請理性工作無法完成,再者對鎖定的物件進行了解鎖,導致資料不能進行同步處理,出現數據不一致。不建議使用。
6.return停止執行緒
interrupt() + return