问答详情
源自:3-2 Java线程停止正确的方法---设置退出旗标

线程停止问题

所以要怎么停止线程呢?用:valatile boolean keepruning =false; 就可以了是嘛?

提问者:铭记1 2018-08-18 16:25

个回答

  • SeokHo
    2018-08-21 11:30:36

    首先,线程会在把线程内代码全部跑完以后停止,这叫做正常停止。调用stop是强行停止,不推荐使用。这里使用了keeprunning = false,那么就会跳出while循环,然后继续进行while循环以下的剩余代码,等剩余代码跑完,线程内就没有代码可以跑了,于是该线程就自己停止了。换成别的情况也是一样,比如说你得线程里只有一个System.out.print(),那么在执行完这个打印任务后,线程就停止了,这种情况不需要keeprunning=false。这里使用keeprunning=false的目的只是让代码能够跳出while循环,并不是说所有线程内部都必须强制用一个keeprunning来让线程正常停止。