繁体   English   中英

如何停止已经执行的TimerTask?

[英]How to stop TimerTask already in execution?

如何停止正在运行的TimerTask

我已经通过上面的链接,但我的问题并未完全解决。

我们可以通过调用timerObj.cancel()来停止Timer。 cancel方法的文档明确指出:

取消{@code Timer}和所有计划的任务。 如果有当前正在运行的任务,则不受影响 此{@code Timer}上无法安排更多任务。 后续通话无济于事

所以我的问题是

如果在timer下安排了许多TimerTask,那么即使它们正在执行各自的run方法 ,我们如何也可以停止所有它们? 有办法解决吗?

提前致谢。

您应该设计run方法,以便它可以自行确定何时终止,例如通过轮询AtomicBoolean的状态。

即使您找到运行TimerTask 的线程对该线程调用stop()或类似方法本质上也是不安全的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM