您是否考虑过包装ExecutorService?创建一个
CleanShutdownExecutorService implements Executor
将所有呼叫委托给另一位执行者,但将期货保留在其自己的列表中。CleanShutdownExecutorService然后可以具有cancelRemainingTasks()方法,该方法调用shutdown(),然后对其列表中的所有Future调用cancel(false)。

您是否考虑过包装ExecutorService?创建一个
CleanShutdownExecutorService implements Executor
将所有呼叫委托给另一位执行者,但将期货保留在其自己的列表中。CleanShutdownExecutorService然后可以具有cancelRemainingTasks()方法,该方法调用shutdown(),然后对其列表中的所有Future调用cancel(false)。