请问线程的终止一般用什么办法?
我在主线程中用start()启动一个子线程,子线程的run方法大概是下面这样的。
public void run() {
while (flg) {
****处理****
}
}
在主程序中把flg设成false以后,子线程就跳出循环了,用子线程的isAlive()方法看,结果也是false。
这个时候想用start()方法重新启动子线程的时候抛出异常。
java.lang.IllegalThreadStateException
这是为什么,是子线程没有真正停止吗?
如果想重新开启子线程应该怎么办?
------解决方案--------------------
run方法执行完以后线程就结束了, 不能再start。
------解决方案--------------------
你这个线程已经执行完毕了,都已经不存在了,你肯定不能再start了。不存在的东西,你怎么启动了。
只能重新创建线程再进行start咯。
------解决方案--------------------
貌似没有,一般控制线程 都在循环里判断个标志.通过标志值进行你自己的想法.
你想要的重启时没得了.
你的想法可能是想暂停行动与恢复行动吧.
可以暂停的.然后你唤醒他
------解决方案--------------------
run完就不能再start了
你的功能可以考虑在代码里wait一下, 需要重启就notify它
------解决方案--------------------
线程执行完run()方法后就结束了。。。这个线程都不存在了,你怎么能重启呢。
楼主你说的应该是将线程暂停,然后必要时候再唤醒它吧