线程停止问题

来源:3-2 Java线程停止正确的方法---设置退出旗标

铭记1

2018-08-18 16:25

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

写回答 关注

1回答

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

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

深入浅出Java多线程

带你一起深入浅出多线程,掌握基础,展望进阶路线

186088 学习 · 464 问题

查看课程

相似问题