Akka调度器的延迟是如何计算的?

4
我编写了一个演员,使用调度程序每5毫秒为字段分配一个时间戳。
在测试中,我发现(System.currentTimeMillis() - timeField)的结果至少为35。
如果我使用Executors.scheduledThreadPool的scheduleAtFixedRate()方法,结果就正确了。
那么调度程序的延迟有最小值吗?
答案是:默认的计时周期为100毫秒。
2个回答

3

谢谢,但这不是我的问题 :) - user1453345
1
看起来,HashedWheelTimer使用Thread.sleep(long millis,int nanos)在大多数平台上的JDK中具有约1毫秒的分辨率,并且在Windows服务器模式下运行时可能会升高到15毫秒... - Andriy Plokhotnyuk

1

Akka有一个相当广泛的文档

以下是摘录:

“Akka使用Netty HashedWheelTimer作为调度程序的默认实现。它不会在精确时间执行任务,而是在每个滴答声上运行所有过期的任务。默认调度程序的准确性可以通过“ticks-per-wheel”和“tick-duration”配置属性进行修改。更多信息请参见:HashedWheelTimers。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接