Java ScheduledExecutorService中断具体任务的定期执行

Java ScheduledExecutorService中断具体任务的定期执行,java,multithreading,scheduledexecutorservice,Java,Multithreading,Scheduledexecutorservice,我有一个作业池,我使用ScheduledExecutorService帮助定期运行这些作业。现在我想停止一些任务的周期性执行,而其他任务应该保持不变。此仪表的最佳方法是什么?ScheduledExecutorService中的方法返回ScheduledFuture。您可以保留对此ScheduledFuture的引用,并对要取消的特定项调用cancel ScheduledExecutorService bla; //Put a bunch of scheduled stuff in a m

我有一个作业池,我使用ScheduledExecutorService帮助定期运行这些作业。现在我想停止一些任务的周期性执行,而其他任务应该保持不变。此仪表的最佳方法是什么?

ScheduledExecutorService中的方法返回ScheduledFuture。您可以保留对此ScheduledFuture的引用,并对要取消的特定项调用cancel

ScheduledExecutorService bla;    
//Put a bunch of scheduled stuff in a map
for(int i = 0; i < 10; i++){
    map.put(i, bla.schedule(() -> {}, 10, TimeUnit.DAYS));  
}
//Cancel number 5
map.get(5).cancel(true);
也许可以将它们保存在带有某种标识符的映射中,以便您知道要取消哪些

ScheduledExecutorService bla;    
//Put a bunch of scheduled stuff in a map
for(int i = 0; i < 10; i++){
    map.put(i, bla.schedule(() -> {}, 10, TimeUnit.DAYS));  
}
//Cancel number 5
map.get(5).cancel(true);
ScheduledExecutorService bla;
//把一堆预定的东西放在地图上
对于(int i=0;i<10;i++){
map.put(i,bla.schedule(()->{},10,TimeUnit.DAYS));
}
//取消5号
map.get(5)、cancel(true);