Java AbstractScheduledService:关闭底层执行器

Java AbstractScheduledService:关闭底层执行器,java,multithreading,guava,Java,Multithreading,Guava,我试图使用google guava lib中的AbstractScheduledService。在这方面,我看到以下情况: 此服务停止时,执行器不会关闭 为什么要在停止服务后让executor线程保持活动状态?对我来说,这似乎是一个非常奇怪的建筑决策。我错过了什么 您可以将executor用于多个服务(因为它只提供执行代码的线程,而没有任何领域知识)。这就是为什么在停止ScheduledService时不停止executor是有意义的您可以将executor用于多个服务(因为它只提供执行代码的线

我试图使用google guava lib中的
AbstractScheduledService
。在这方面,我看到以下情况:

此服务停止时,执行器不会关闭


为什么要在停止服务后让executor线程保持活动状态?对我来说,这似乎是一个非常奇怪的建筑决策。我错过了什么

您可以将executor用于多个服务(因为它只提供执行代码的线程,而没有任何领域知识)。这就是为什么在停止ScheduledService时不停止executor是有意义的

您可以将executor用于多个服务(因为它只提供执行代码的线程,而没有任何领域知识)。这就是为什么在
executor()
doc中停止ScheduledService时不停止executor是有意义的。@skaffman在
executor()
doc中。是的,这是一个非常好的参数。请记住,ExecutorService接受Callable以提交新任务并返回Future。这样,单个执行器可以用于许多不同的任务,因为它将逻辑(可调用)从调度中分离出来。请记住,ExecutorService接受Callable以提交新任务并返回Future。这样,单个执行器可以用于许多不同的任务,因为它将逻辑(可调用)与调度分离。