1. 程式人生 > >JAVA-初步認識-第十四章-多線程-停止線程方式-定義標記

JAVA-初步認識-第十四章-多線程-停止線程方式-定義標記

凍結 als 大小 span clas thread 結果 gpo http

一.

線程既然開啟了,運行了,凍結又恢復運行了,那什麽時候消亡呢? 怎麽來停止線程呢?不能一直在運行。

線程怎麽停,線程自己最清楚。在Thread類中,提供了stop方法,

技術分享圖片

本來線程持有一個鎖,只要stop,它就什麽都在放,這是強制操作,無論出於什麽狀態,強制將其搞定。本來wait,這那兒的,stop一下子就沒了。

stop方法做的不是狀態切換了,而是消失。

技術分享圖片

線程停止,其實只有一種,就是run方法結束。

線程一旦沒有自己運行的代碼了,任務沒有了,線程自動就結束了。可是線程的任務怎麽能沒有呢?

技術分享圖片

標記就是條件,條件的書寫是多種多樣的,怎麽寫都可以。

以前寫的while(ture)是死循環,不用想停的事兒了,除非你加上if,break。

技術分享圖片

現在將true改成flag,就是條件標記,可以是ture-false,或是比較大小值。同時還要向外提供一個能夠改變標記的方式,

技術分享圖片

技術分享圖片

DOS結果顯示正常,而且結束了。如果沒有st.setFlag(),那麽上面兩個線程就結束不了。

當我們有了標記以後,一旦步入循環了,這個程序就能停的下來。

這種定義標記的方式,我們很常用。但是用起來,還有些解決不了的問題。

JAVA-初步認識-第十四章-多線程-停止線程方式-定義標記