在关机时从可运行线程内停止计时器任务



我有一个TimerTask,它作为我的Runnable类的run()方法中的第一件事开始。我想确保它在runnable关闭时停止。

可运行文件是通过ExecutorService启动的。当shutdown()被调用时,我没有看到从ExecutorService获得钩子回可运行的方法。

如何确保TimerTask已停止?

谢谢

在任务完成后使用ExecuterService.submit()获取Future对象。

ExecutorService.Submit ()

方法调用TimerTask.cancel()应该完成所需的操作。

您的Runnable.run方法可以这样设计:

public void run() {
    pingTask = new PingTimerTask(...);
    try {
        ...
    } finally {
        /* this code even gets executed when an exception
         * (for example an *InterruptedException*) was thrown:
         */
        pingTask.cancel();
    }
}

相关内容

  • 没有找到相关文章

最新更新