Когда я периодически выполняю трудоемкое задание, результаты не соответствуют моим ожиданиям.
public static void main(String[] args) {
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(10);
scheduler.scheduleAtFixedRate(() -> {
System.out.println("start: " + System.currentTimeMillis());
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end : " + System.currentTimeMillis());
}, 0, 1, TimeUnit.SECONDS);
}
/*
start: 1539688734439
end : 1539688737442
start: 1539688737443
end : 1539688740447
start: 1539688740447
end : 1539688743452
start: 1539688743452
end : 1539688746456
start: 1539688746456
end : 1539688749461
...
*/
Как показано выше, 3 секунды между двумя start
вместо 1 секунды.