中斷執行緒的方法有很多,最簡單的是直接呼叫stop()和subspend()方法,但是這兩種方法並不推薦使用,因為它們有可能導致資料的不同步而發生死鎖現象。如果真的需要終止乙個執行緒,可以使用以下幾種方法:
1、讓執行緒的run()方法執行完,執行緒自然結束。(這種方法最好)
2、通過輪詢和共享標誌位的方法來結束執行緒,例如while(flag){},flag的初始值設為真,當需要結束時,將flag的值設為false。(這種方法也不很好,因為如果while(flag){}方法阻塞了,則flag會失效)
3、通過呼叫interrupt方法和捕獲interruptedexception異常來終止執行緒。
實際上最好的方法是使用執行緒池,當執行緒不用了,就讓它sleep並放進佇列中,這樣可以最大限度地利用資源。
執行緒終止的方法
1.異常法 使用退出標誌,使執行緒正常退出 public class mythread extends thread system.out.println i i 1 system.out.println for 迴圈下面 2.使用stop方法強行終止 該方法已經作廢,因為會使資料產生不一致性,程式...
Java等待執行緒池終止
1 輪詢isterminated while service.isterminated 2 輪詢awaittermination while service.awaittermination 1,timeunit.seconds service表示執行緒池物件,當執行緒池終止時將自動跳出while迴...
執行緒的終止
1.程序中的任意執行緒呼叫了exit exit 或者 exit,那麼整個程序就會終止。2.如果預設的動作是終止程序,那麼傳送到執行緒的訊號也會終止整個程序。在不終止程序的情況下停止單個執行緒 1.執行緒可以從啟動例程中返回 return 返回值是執行緒的退出碼。2.執行緒可以被同一程序中的其他執行緒...