如何停止一个已经启动的线程? 15

网上找了一圈,也没能找着真正停掉线程的方法publicclassThreadTestimplementsRunnable{privatevolatilestop=fals... 网上找了一圈,也没能找着真正停掉线程的方法
public class ThreadTest implements Runnable{
private volatile stop=false;
public void setStop(boolean stop) {
this.stop = stop;
}
public void run(){

System.out.println("thread running");
while(!stop){

crawler();
if(Thread.currentThread().isInterrupted){
Thread.currentThread().Interrupt();
System.out.println("thread interrupt()");
return;

} }
}
}
main方法{
Thread t=new Thread(new ThreadTest());
t.start();

t.setFlag=true;

t.interrupt();
}

crawler()方法实现了一个网络爬虫,以上是从网上找来的解决方法,设置stop的值这个在线程运行后根本进不了run()方法,interrupt()方法也根本没起到作用。至于还有一种是使用回调函数传参,套了下也不大好用。
展开
 我来答
eastlife81
2013-11-23 · TA获得超过348个赞
知道小有建树答主
回答量:772
采纳率:0%
帮助的人:382万
展开全部
在线程内调用自身的isinterrupted()这个方法返回值会为真吗?
还有t.setFlag=true;是什么玩意
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式