停止thread
既然可以用start方法啟動乙個執行緒物件執行,那麼就應該有對應的stop方法來終止(停止)執行緒物件的執行。
但是在jdk1.1之後,這個stop方法就取消了,因為會造成系統進入不穩定的狀態。。。
(這裡說的 終止,停止,是指執行緒停掉之後,永遠都不能恢復執行了)
那麼我們就自己設計乙個方案,讓執行緒物件停止執行:
乙個執行緒物件的執行體是run方法
run方法裡面的程式**執行完後,那麼就意味著這個執行緒停止了。
乙個執行緒停止了,就進入了「dead」狀態,沒有任何方法讓該執行緒物件進入其他狀態了,永遠不能恢復執行了(不能死而復生
除非重新new乙個新的執行緒物件。
所以我的方案是,想終止乙個執行緒的執行,設計乙個stop方法,提前讓這個執行緒的run方法退出(return)
具體**如下:
package thread;
public class hello4 implements runnable
@override
public void run()
} // 自定義的stop方法
public void stop()
}
自定義的stop方法,在程式外部呼叫,呼叫之後,run方法內部,跳出迴圈體,即提前執行完畢。
執行緒狀態圖更新如下:
Java多執行緒3 停止執行緒
關於執行緒的停止,主要有兩種,一種是自然停止,即執行緒體正常執行完畢。還有一種則是外部干涉,我們主要講的是外部干涉。其實也比較簡單 外部干涉 1 執行緒類中定義執行緒體使用的標識,如boolean型 2 執行緒體中使用該標識 3 提供對外的方法改變該標識 4 外部根據條件呼叫該標識 我們還是用例子來...
Java停止執行緒
1 run方法正常結束 public class stopthreaddemo class printthread extends thread 2 可以在run方法中設定標記讓執行緒正常結束 public class stopthreaddemo class printthread extends...
java執行緒停止 三
例如 生產者產生隨機數,但生產者生產到數字0時,產生毒丸物件放入到生產佇列中,立即停止生產,消費者接受生產者生產的資料,簡單列印出來,當接收到毒丸物件時,消費者停止消費。public class threadcacell4 else class consumer implements runnabl...