Я смотрел на javadoc из -> java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate
Я перепродал ниже javadoc:
ScheduledFuture<?> java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
Создает и выполняет периодическое действие, которое становится активным первым послезаданная начальная задержка и впоследствии с заданным периодом;то есть выполнение начнется после initialDelay, затем initialDelay + period, затем initialDelay + 2 * period и т. д. Если какое-либо выполнение задачи встречает исключение, последующие выполнения подавляются.В противном случае задание будет прекращено только путем отмены или прекращения исполнителя.Если какое-либо выполнение этой задачи занимает больше времени, чем ее период, то последующие выполнения могут начаться с опозданием, но не будут выполняться одновременно.
Parameters:
command the task to execute
initialDelay the time to delay first execution
period the period between successive executions
unit the time unit of the initialDelay and period parameters
Returns:
a ScheduledFuture representing pending completion of the task, and whose get() method will throw an exception upon cancellation
Я понял, что в первый раз она будет включена после initialDelay
, а затем повторенапосле period
.Однако, глядя на выделенный раздел выше, кажется, что частота увеличивается между последовательными выполнениями.
Это правильное поведение?Если так, то задержка увеличится с предыдущих казней?
Кто-нибудь может помочь прояснить?