gpt4 book ai didi

java - 如何暂停/恢复或更改TimerTask的周期时间?

转载 作者:行者123 更新时间:2023-11-30 04:48:39 25 4
gpt4 key购买 nike

我最初的目的是每个 xx TimeUnit 执行一段代码,而不是简单地循环它并检查标志。我做了一些研究,发现了两个解决方案:

  1. Timer + TimerTask - 一旦计时器暂停,您必须重新启动另一个计时器。 TimerTask 也是如此。

  2. ScheduledThreadPoolExecutor + Runnable - 与之前的组合相同。但有人说这是增强版。但它仍然没有提供我之前提到的功能。

现在,我正在寻找一种优雅的方法来解决这个问题。也许我应该专注于锁?

最佳答案

我将使用 ScheduledExecutorService 并使用 Future.cancel() 来暂停。并scheduleAtFixedRate再次启动它。

如果您想更改周期,请取消并使用新周期再次添加(假设其未暂停)。

如果您想隐藏此详细信息,您可以创建一个带有 suspend()、resume() 和 setPeriod() 方法的包装器。

关于java - 如何暂停/恢复或更改TimerTask的周期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com