如何阻止线程?(How to stop a thread?)
优质
小牛编辑
122浏览
2023-12-01
问题描述 (Problem Description)
如何停止一段时间的线程?
解决方案 (Solution)
下面的示例演示了如何通过创建用户定义的方法run()来获取线程,并借助Timer类的方法。
import java.util.Timer;
import java.util.TimerTask;
class CanStop extends Thread {
private volatile boolean stop = false;
private int counter = 0;
public void run() {
while (!stop && counter < 10000) {
System.out.println(counter++);
}
if (stop)
System.out.println("Detected stop");
}
public void requestStop() {
stop = true;
}
}
public class Stopping {
public static void main(String[] args) {
final CanStop stoppable = new CanStop();
stoppable.start();
new Timer(true).schedule(new TimerTask() {
public void run() {
System.out.println("Requesting stop");
stoppable.requestStop();
}
},
350);
}
}
结果 (Result)
上面的代码示例将产生以下结果。
Detected stop