Java 我是否可以检索ScheduledExecutorService中运行的任务而不保留其引用?
我目前正在修改一个应用程序,以使用Java 我是否可以检索ScheduledExecutorService中运行的任务而不保留其引用?,java,multithreading,scheduledexecutorservice,Java,Multithreading,Scheduledexecutorservice,我目前正在修改一个应用程序,以使用ScheduledExecutorService代替计时器,并且我使用保留的映射访问计划任务,它允许我取消()任务并访问它 使用此API,我似乎必须维护两个Maps,一个用于访问任务,另一个用于schedule()返回的scheduledfutures才能取消它们 我读过,但与我使用定时器所做的工作相比,它看起来非常繁重(只需要一个映射) 这是一个简单的应用程序,有两个任务需要访问和取消 是否有我没有得到的东西,或者“遗嘱执行人”不是我需要的东西 您希望提交任务
ScheduledExecutorService
代替计时器
,并且我使用保留的映射访问计划任务,它允许我取消()
任务并访问它
使用此API,我似乎必须维护两个Map
s,一个用于访问任务,另一个用于schedule()
返回的scheduledfuture
s才能取消它们
我读过,但与我使用定时器所做的工作相比,它看起来非常繁重(只需要一个映射)
这是一个简单的应用程序,有两个任务需要访问和取消
是否有我没有得到的东西,或者“遗嘱执行人”不是我需要的东西
您希望提交任务实例,因为它包含一些信息
您需要能够取消提交的任务
修改已提交任务的类定义,使其包含Future的实例。现在,当您将任务提交到ExecutorService
时,它将返回一个Future
,您可以在提交的任务对象中设置此Future对象。因此,现在您只需保留已提交的任务,您将通过future获得信息以及取消任务的能力。如果您使用executor service,则可以使用futures检索任务状态,您无法从已提交的任务中获取此状态。所以需要2张地图。这不是我想要的状态,而是实例本身,我在里面存储了信息。是的,但你想保留取消的能力,对吗?是的,我明白你的意思,所以我应该按照我提到的帖子中的解释,将其包装起来管理地图?