假设我们有一个Java任务(例如: Runnable
),如果我们在x
秒内没有收到外部信号,它将被执行。
解决此问题的常用方法是使用调度线程池(例如ScheduledExecutorService
)来执行此任务,并考虑x
延迟。当我们从系统的其他部分收到外部事件时,我们需要重新安排此任务,即在x
延迟的线程池中重新插入此任务。
我的问题是:在ScheduleExecutorService
中重新安排任务的正确/优化方式是什么?当前的解决方案通常专注于删除/取消并重新插入线程池中的dealyed任务。这是最好的方法吗?