如何停止一个已经启动的线程? 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()方法也根本没起到作用。至于还有一种是使用回调函数传参,套了下也不大好用。 展开
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()方法也根本没起到作用。至于还有一种是使用回调函数传参,套了下也不大好用。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询