【发布时间】:2011-01-13 20:41:04
【问题描述】:
我在对this answer 的评论中读到了java.util.Timer 已弃用的许多其他关于调度的问题(抱歉,没有参考)。我真的希望不要,因为我将它用作在 Java 中安排事情的简便方法(而且它工作得很好)。但如果它被弃用,我会在别处寻找。 但是,快速浏览一下 API docs for 1.6 并没有说明它已被弃用。 Sun 的 Deprecated List 甚至都没有提到它。
它是否已正式弃用*,如果是,我应该改用什么?
*另一方面,如果它不被弃用,人们是否可以停止诋毁这种无辜且出色实现的 set-o-classes?
【问题讨论】:
-
java.util.Timer写得远非出色。编写可测试的代码既不灵活也很困难。ScheduledExecutorService在所有可衡量的方面都更好。 -
@skaffman,这可能是正确的。我唯一的问题是
ScheduledExecutorService是否和Timer一样轻量级。这只是Object.wait(long)上的一个薄包装……那么预定……呢? -
源代码在那里,你自己看看。我能说的是
java.util.concurrent的东西(包括ScheduledExecutorService)是为极高的吞吐量而设计的,Timer从来没有。 -
谢谢@skaffman,我会检查他的来源。