Java Timer vs ExecutorService?
2022-08-31 05:10:37
我有代码,我使用.我环顾四周,看到也可以做同样的事情。所以这个问题在这里,你有没有使用和安排任务,一个使用比另一个有什么好处?java.util.Timer
ExecutorService
Timer
ExecutorService
还想检查是否有人使用过该类,并遇到为他们解决的任何问题。Timer
ExecutorService
我有代码,我使用.我环顾四周,看到也可以做同样的事情。所以这个问题在这里,你有没有使用和安排任务,一个使用比另一个有什么好处?java.util.Timer
ExecutorService
Timer
ExecutorService
还想检查是否有人使用过该类,并遇到为他们解决的任何问题。Timer
ExecutorService
根据Java并发实践:
Timer
可以敏感地改变系统时钟,不是。ScheduledThreadPoolExecutor
Timer
只有一个执行线程,因此长时间运行的任务可能会延迟其他任务。 可以配置任意数量的线程。此外,如果需要,您可以完全控制创建的线程(通过提供 )。ScheduledThreadPoolExecutor
ThreadFactory
TimerTask
Timer
ScheduledThreadExecutor
afterExecute
ThreadPoolExecutor
如果可以使用 代替 ,请这样做。ScheduledThreadExecutor
Timer
还有一件事...虽然在Java 1.4库中不可用,但有一个JSR 166(java.util.concurrent
)到Java 1.2,1.3,1.4的Backport,它具有该类。ScheduledThreadExecutor
ScheduledThreadExecutor
如果您可以使用它,那么很难想出不使用Java 5执行器框架的理由。叫:
ScheduledExecutorService ex = Executors.newSingleThreadScheduledExecutor();
将为您提供 与 类似的功能(即它将是单线程的),但其访问可能稍微更具可扩展性(在引擎盖下,它使用并发结构而不是像类那样完全同步)。使用 a 还可以为您提供以下优势:ScheduledExecutorService
Timer
Timer
ScheduledExecutorService
newScheduledThreadPoolExecutor()
ScheduledThreadPoolExecutor
关于坚持我能想到的唯一原因是:Timer