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张地图。这不是我想要的状态,而是实例本身,我在里面存储了信息。是的,但你想保留取消的能力,对吗?是的,我明白你的意思,所以我应该按照我提到的帖子中的解释,将其包装起来管理地图?