问题描述
Java多线程如何在程序安全的情况下关闭?
解决方案
解决方案二:
程序安全?什么意思?
解决方案三:
设置一个公共的关闭信号各个线程收到关闭信号后,自行运行完毕,自行关闭应该是最安全的。
解决方案四:
各线程自己stop()
解决方案五:
比如要读取10个文件,在读取的4个半的地方关闭线程,不影响已读过的内容.
解决方案六:
是说线程异常终止?那就是你自己线程内部代码的问题了,只读取文件,对原始文件不会有影响如果想断点续读,就要在线程的内部代码中有一定的校验,纠错的机制了
解决方案七:
我是读取一个文件的内容到另一个日志文件里面的,现在总是在stop以后日志文件里面保存的内容不完全.
解决方案八:
把你的代码贴出来吧,具体问题具体分析估计是你线程内部收尾工作没做好
解决方案九:
调用interrupt()方法啊
解决方案十:
设置一个标志,while(flag){}
解决方案十一:
想安全停止不推荐调用stop()和interrupt()使用楼上的while(flag){.....if(条件)flag=false;}这样的方法结束线程就好了
解决方案十二:
Thread.stop、Thread.suspend和Thread.resume等方法即为不安全推出线程的方法,一般是不推荐使用的。可以用定义Boolean参数的方法,然后控制循环的办法:importjava.util.*;publicclassTestInterrupt{publicstaticvoidmain(String[]args){MyThreadthread=newMyThread();thread.start();try{Thread.sleep(10000);}catch(InterruptedExceptione){}thread.flag=false;}}classMyThreadextendsThread{booleanflag=true;publicvoidrun(){while(flag){System.out.println("==="+newDate()+"===");try{sleep(1000);}catch(InterruptedExceptione){return;}}}}其实还可以更加完善,即:专门定义一个flag的参数类,然后用tread.className调用之,更加完善