怎样停止一个线程? 上面的兄弟interrupt()中断可以停止线程吗?好像中断只对sleep()或wait()了之类的线程有效吧你没有保存VeryLongProcedure的引用,好像没办法停止 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当run()返回时(return)时,线程终止 VeryLongProcedure vlp;public void run() { vlp=new VeryLongProcedure();}那如果这样怎么中止?就在外部调用vlp=null可以吗?不过反正现在我暂时用stop()还管用,没出什么问题,可能以后会出deadlock之类的问题,继续顶! 我才试了一下,把vlp设成null了,它还在运行,根本没用,请问除了stop()之外就没其他方法了吗?可是sun又强烈反对用stop(),我在VeryLongProcedure里有网络和数据库之类的操作,也怕会出问题啊! http://www.zdnet.com.cn/developer/code/story/0,2000081534,39276905-2,00.htmhttp://dev.csdn.net/article/54/54702.shtm一般建议的方法是使用boolean变量 在while(false)这样跳出interrupt()也是没办法的办法 同意zealVampire(蚊子+鹤舞白沙) 的意见。一般,如果线程有“死”循环,最好考虑通过标志状态来决定线程的“生死”,线程结束最保险的作法是让线程结束run方法,stop/interrupt并不能保证结束线程。 对啊!我们没办法控制线程的结束,唯一的办法就是想办法结束run()方法而处理一个比较复杂的线程的时候,一般做法就是循环判断一个boolean 一般建议的方法是使用boolean变量 在while(false)这样跳出interrupt()也是没办法的办法---------------可他没有用循环,而是一个耗时很长的方法,怎么能中止这个方法呢? 那只能从那个方法入手.java不推荐强制停止,要自己控制 请不要再向我推荐interrupt()了,楼上的也讲过,我自己也亲身试过,根本就没用。你们说从那个方法入手,是不是在每行之间都插一条if(isStopped==true) return false;我那段本来就超级长的程序竟然要double长啊? 不知道论坛里有没有搞Tulip平台开发的? String的存储地址 为什么数组不支持泛型? 求CFS加密算法的java代码(附C的代码) ???如何在Java 中自定义一个事件??? 如何在点击窗口那个叉叉关闭的时候跳出消息框? byte类型如何转换成int类型? 请问JFrame与JDialog的区别以及Runnable与thread的区别 35215 JAVA新手求助 怎么用java编一个记事本? 菜鸟请教
public void run() {
vlp=new VeryLongProcedure();
}
那如果这样怎么中止?就在外部调用vlp=null可以吗?不过反正现在我暂时用stop()还管用,没出什么问题,可能以后会出deadlock之类的问题,继续顶!
http://dev.csdn.net/article/54/54702.shtm
一般建议的方法是使用boolean变量 在while(false)这样跳出
interrupt()也是没办法的办法
一般,如果线程有“死”循环,最好考虑通过标志状态来决定线程的“生死”,线程结束最保险的作法是让线程结束run方法,stop/interrupt并不能保证结束线程。
而处理一个比较复杂的线程的时候,一般做法就是循环判断一个boolean
interrupt()也是没办法的办法
---------------
可他没有用循环,而是一个耗时很长的方法,怎么能中止这个方法呢?