JAVA-初步认识-第十四章-多线程-停止线程方式-定义标记
一.
线程既然开启了,运行了,冻结又恢复运行了,那什么时候消亡呢? 怎么来停止线程呢?不能一直在运行。
线程怎么停,线程自己最清楚。在Thread类中,提供了stop方法,
本来线程持有一个锁,只要stop,它就什么都在放,这是强制操作,无论出于什么状态,强制将其搞定。本来wait,这那儿的,stop一下子就没了。
stop方法做的不是状态切换了,而是消失。
线程停止,其实只有一种,就是run方法结束。
线程一旦没有自己运行的代码了,任务没有了,线程自动就结束了。可是线程的任务怎么能没有呢?
标记就是条件,条件的书写是多种多样的,怎么写都可以。
以前写的while(ture)是死循环,不用想停的事儿了,除非你加上if,break。
现在将true改成flag,就是条件标记,可以是ture-false,或是比较大小值。同时还要向外提供一个能够改变标记的方式,
DOS结果显示正常,而且结束了。如果没有st.setFlag(),那么上面两个线程就结束不了。
当我们有了标记以后,一旦步入循环了,这个程序就能停的下来。
这种定义标记的方式,我们很常用。但是用起来,还有些解决不了的问题。