簡體   English   中英

ScheduledExecutorService,以不同的時間間隔安排不同的任務

[英]ScheduledExecutorService, schedule different tasks at different intervals

我想要有兩個任務--HandlerA和HandlerB分別每10秒和每20秒執行一次。 如果這個解決方案錯了,實現這個目標的最佳方法是什么?

ScheduledExecutorService stp = Executors.newScheduledThreadPool(8);
stp.scheduleAtFixedRate(new HandlerA(), 0, 10, TimeUnit.SECONDS);
stp.scheduleAtFixedRate(new HandlerB(), 0, 20, TimeUnit.SECONDS);

當我安排另一個時,是否會覆蓋計划任務?

你的解決方案是對的。 您正在安排2個單獨的任務。 您的ScheduledThreadPoolExecutor的核心池大小= 8,這足以並行執行2個計划任務。

你為什么要問? 那解決方案很好。 scheduleAtFixedRate每次調用都會啟動一個單獨的調度程序,即添加HandlerA兩次運行它與兩個獨立的調度程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM