4

我写了一个演员,每 5 毫秒使用一个调度程序为一个字段分配一个时间戳。

在测试中,我发现结果(System.currentTimeMillis() - timeField)至少是 35

如果我使用scheduleAtFixedRate()Executors.scheduledThreadPool 中的方法,结果是正确的。

那么调度程序延迟是否有最小值?

答:默认滴答持续时间为 100 毫秒。

4

2 回答 2

3

ScheduledThreadPoolExecutor 使用 System.nanoTime(): http: //fuseyism.com/classpath/doc/java/util/concurrent/ScheduledThreadPoolExecutor-source.html

在此处查看比较: System.currentTimeMillis vs System.nanoTime

于 2012-07-10T17:52:57.907 回答
1

Akka 有相当广泛的文档

这是一段摘录:

“Akka 使用的 Scheduler 的默认实现是基于 Netty HashedWheelTimer。它不会在确切的时间执行任务,而是在每个滴答时,它会运行所有过期的东西。默认 Scheduler 的准确性可以由“ticks-per-wheel”和“tick-duration”配置属性。有关更多信息,请参阅:HashedWheelTimers。”

于 2012-07-11T14:17:53.550 回答