gpt4 book ai didi

java - ScheduledExecutorService,如何在不停止执行程序的情况下停止操作?

转载 作者:行者123 更新时间:2023-12-03 13:12:25 24 4
gpt4 key购买 nike

我有以下代码:

ScheduledExecutorService scheduledExecutor;
.....
ScheduledFuture<?> result = scheduledExecutor.scheduleWithFixedDelay(
new SomethingDoer(),0, measurmentPeriodMillis, TimeUnit.MILLISECONDS);

在发生一些事件之后,我应该停止操作,该操作在 run()SomethingDoer方法中声明,该方法实现了 Runnable

我怎样才能做到这一点?我无法关闭执行器,只能撤消我的定期任务。我可以为此使用 result.get()吗?如果可以的话,请告诉我它如何工作。

最佳答案

使用result.cancel()ScheduledFuture是您的任务的句柄。您需要取消此任务,它将不再执行。

实际上,cancel(boolean mayInterruptIfRunning)是签名,将其与true参数一起使用将导致当前正在运行的执行线程被interrupt()调用中断。如果线程在阻塞的可中断调用(例如Semaphore.acquire())中等待,则会抛出一个中断的异常。请记住,cancel将确保仅在任务停止执行后不再执行该任务。

关于java - ScheduledExecutorService,如何在不停止执行程序的情况下停止操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27425734/

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