Java没有提供任何机制来安全地终止线程。但它提供了中断(Interruption),这是一种协作机制,能使一个线程终止另一个线程的当前正在执行的工作。
其中一种协作机制设置某个"已请求取消(Cancellation Requested)"标志,而任务讲定期地检查该标志。如果设置了该标志,那么任务将提前结束。
publish class PrimeGenerator implement Runnable {
private volatile boolean cancelled;
public void run() {
while (cancelled) {
//具体的耗时操作
}
}
public void cancel() {
cancelled = true;
}
}
PrimeGenerator使用了一种简单的取消策略