java執行緒研究 3 停止Thread

2021-07-04 09:50:15 字數 801 閱讀 6375

停止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...