我有一个工作池,我定期使用ScheduledExecutorService帮助。现在我想停止定期执行某些任务,而其他任务应该不受影响。这个仪表的好方法是什么?
答案 0 :(得分:5)
ScheduledExecutorService中的方法返回ScheduledFuture。您可以保留对此ScheduledFuture的引用,并对要取消的特定呼叫取消取消。
也许将它们保存在一个标识为某种排序的地图中,以便您知道哪些要取消。
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);