Your solution is correct. You are scheduling 2 separate tasks. Your ScheduledThreadPoolExecutor has core pool size = 8, this is more than enough to execute 2 scheduled tasks in parallel.
ScheduledExecutorService, schedule different tasks at different intervals
-
14-01-2022 - |
문제
I want to have two tasks - HandlerA and HandlerB being executed every 10 and every 20 seconds respectively. If this solution is wrong, what is the best way to achieve this?
ScheduledExecutorService stp = Executors.newScheduledThreadPool(8);
stp.scheduleAtFixedRate(new HandlerA(), 0, 10, TimeUnit.SECONDS);
stp.scheduleAtFixedRate(new HandlerB(), 0, 20, TimeUnit.SECONDS);
is the scheduled task overwritten, when I schedule another one?
해결책
다른 팁
Why do you ask? That solution is fine. Each invocation of scheduleAtFixedRate
starts an individual scheduler i.e. adding HandlerA
twice runs it with two independent schedulers.
제휴하지 않습니다 StackOverflow