1

我正在使用 TimerTask 来运行一些周期性任务,该任务正在处理一组文件。我有一个要求,如果要处理的文件数量超过预定限制,线程会暂停执行并等待下一个周期再次开始处理文件。有没有办法暂停 TimerTask 直到下一个执行周期,还是我必须扩展 TimerTask 类来实现这个功能?我看到有一个 TimerTask.cancel 方法,但这将取消该线程的所有进一步执行。我不希望这种情况发生。我只想让线程暂停到下一个执行周期。由于我们的框架使用 TimerTask,因此我无法迁移到 Java 中的任何其他并发类,我必须坚持下去。

非常感谢任何建议、指示或提示。

谢谢,

阿莎

4

1 回答 1

1

一种方法是将任务放在 a 上BlockingQueue并让TimerTask remove()和处理条目,直到队列为空或达到预定限制。任何剩余的条目都将在队列中等待下一次计划执行。

于 2011-11-18T01:48:49.760 回答