如何在 Java 中暂时停止线程
问题描述
如何暂时停止线程?
解决方案
以下示例演示了如何通过创建用户定义方法 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); } }
结果
上述代码示例将产生以下结果。
Detected stop
java_threading.html