【发布时间】:2010-11-22 05:44:30
【问题描述】:
我正在使用java.util.Timer 来安排定期任务。在某一时刻,我想关闭它,然后等待它完成。
Timer.cancel() 将阻止任何未来的任务运行。我如何确保当前没有运行任何任务(或者等待它们运行?)
我可以引入外部同步机制,但我看不出它们如何涵盖所有情况。例如,如果我在任务中的某个监视器上进行同步,我仍然会错过任务刚开始执行但没有占用监视器的情况。
等待所有任务真正完成(包括当前正在运行的任务)的推荐做法是什么?
【问题讨论】:
标签: java synchronization timer monitor