如何停止已经执行的TimerTask?

如何停止正在运行的TimerTask

我已经通过上述链接,我的问题没有完全解决。

我们可以通过调用timerObj.cancel()来停止Timer。 cancel方法的文件清楚地说:

取消定时器和所有计划的任务。 如果当前正在运行的任务不受影响 。 可以在此{@Code Timer}上安排更多任务。 随后的通话什么都不做

所以我的问题在于,

如果很多TimerTasks都是在一个timer下进行调度的,那么即使它们正在执行它们各自的run方法 ,我们又怎么能阻止它们呢? 有没有办法解决这个问题?

提前致谢。


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

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

链接地址: http://www.djcxy.com/p/74915.html

上一篇: How to stop TimerTask already in execution?

下一篇: Java long running timer is being consumed by GC