已經被拋棄的方法:
通過調用stop()
通過調用suspend()和resume()方法
廢棄原因(再寫具體一點):
太過暴力,可能會導致一些清理工作不會完成
調用後會直接釋放鎖,可能會導致數據不同步的問題https://www.jianshu.com/p/e0ff2e420ab6
目前使用的方法:
調用interrupt(),通知線程應該中斷
1.如果線程處於阻塞狀態,那麼線程將立即退出阻塞狀態,並拋出一個InterruptedException異常
2.如果線程處於正常活動狀態,那麼會將該線程的中斷標誌設置爲true,被設置中斷標誌的線程將繼續正常運行,不受影響。
注:需要被調用的線程配合中斷:1.在正常運行任務時,經常檢查本線程的中斷標誌,如果中斷標誌爲true,就尋找一個安全的位置自行停止線程。2.如果線程處於正常活動狀態,那麼會將該線程的中斷標誌設置爲true,被設置的線程將繼續運行,不受影響。
示例代碼: