目前,我有一个ScheduledThreadPoolExecutor,它可以以固定的速率执行可调用对象。

scheduledThreadPoolExecutor.scheduleAtFixedRate(callable, delay, waitNano, TimeUnit.NANOSECONDS);


我的团队想在waitNano中添加一些随机性。当前是1000。但是我们希望等待的时间例如是900、1100、800、1200。平均等待时间仍然是1000,但是等待时间是随机分布的(例如,像贝尔曲线)。

我想知道Java中是否已经有此功能?
如果我必须编写自己的具有这种随机等待行为的“调度程序”,那么你们有什么建议?

非常感谢!

尔本

最佳答案

以固定的计划(例如10分钟)调用另一个Runnable,并让其配置随机计划程序的下一次执行以随机方式仍在管理随机性

使用schedule();

例如:第一列显示固定调度程序的执行,它确定何时执行托管随机调度程序

0    1
5    7
10   11
15   18

关于java - Java以伪“固定”速率调度可调用对象(例如,钟形曲线分布),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30707556/

10-12 03:48