获取java中正在运行的计时器的实例

获取java中正在运行的计时器的实例,java,multithreading,timer,Java,Multithreading,Timer,是否可以在Java中获取运行计时器的实例 更准确地说,我想做的是按名称获取当前正在运行的计时器并取消它。我该怎么做 我尝试将它引用为线程并将其转换为计时器,但这是不允许的 有什么建议吗?计时器有一个关联的线程(可选)和一个名称。它本身不是线程,所以您尝试将线程强制转换为计时器失败 Timer的文档没有指出提供了按名称查找计时器的方法。此外,如果您查看,您将看到没有发生任何类型的全局注册,即不存在某些计时器名称到某个计时器的映射。因此,你所要求的是不可能的 相反,在设计中必须考虑替代方法。例如,根

是否可以在Java中获取运行计时器的实例

更准确地说,我想做的是按名称获取当前正在运行的计时器并取消它。我该怎么做

我尝试将它引用为线程并将其转换为计时器,但这是不允许的

有什么建议吗?

计时器有一个关联的线程(可选)和一个名称。它本身不是线程,所以您尝试将线程强制转换为计时器失败

Timer的文档没有指出提供了按名称查找计时器的方法。此外,如果您查看,您将看到没有发生任何类型的全局注册,即不存在某些计时器名称到某个计时器的映射。因此,你所要求的是不可能的


相反,在设计中必须考虑替代方法。例如,根据需要适当地跟踪您的时间任务。这是最有意义的。我想您也可以将计时器名称映射到某个地方的计时器,但如果您需要使用此映射,则这意味着您在概念上已经失去了TimerTask与管理某个地方特定任务的事物之间的连接,这可能表明存在设计问题。您也可以选择使用例如a,这样您就只需通过一个中央执行器服务来管理可运行程序,而不必以没有方便的TimerTask.cancel为代价来跟踪单个计时器和任务-这可能会简化设计,也可能不会简化设计。

我几乎可以肯定您不想杀死计时器本身,而是一个被安排重复执行的TimerTask。我说的对吗?你能把代码贴在启动计时器的地方吗?你能提供更多关于你的上下文的信息吗?您使用计时器和任务的目的是什么,为什么要取消它们,以及当前哪些类型的事件触发了它们的取消?