Java中斷線程的方法有很多,最簡單的是直接調用stop()和subspend()方法,但是這兩種方法並不推薦使用,因為它們有可能導致數據的不同步而發生死鎖現象。如果真的需要終止一個線程,可以使用以下幾種方法:
1、讓線程的run()方法執行完,線程自然結束。(這種方法最好)
2、通過輪詢和共享標志位的方法來結束線程,例如while(flag){},flag的初始值設為真,當需要結束時,將flag的值設為false。(這種方法也不很好,因為如果while(flag){}方法阻塞了,則flag會失效)
3、通過調用interrupt方法和捕獲InterruptedException異常來終止線程。
實際上最好的方法是使用線程池,當線程不用了,就讓它sleep並放進隊列中,這樣可以最大限度地利用資源。