gpt4 book ai didi

java - 如何停止 Executors.newSingleThreadScheduledExecutor

转载 作者:行者123 更新时间:2023-11-30 07:10:32 28 4
gpt4 key购买 nike

我有:

private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

运行可运行任务:

executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);

但看来 executorService没有取消方法(wtf,为什么?),关闭它不是一个选项,我正在做一些相当简单的事情,所以使用 Executors.newScheduledThreadPool (其中确实有 cancel() )有点矫枉过正。

有没有办法正确停止任务的执行?

PS:我问之前就查了一下,我真的不认为这个hack是正确的方法。

最佳答案

executorService.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);返回 ScheduledFuture<V> ,其中确实有 cancel(boolean) 方法。正确的取消方式是通过 future 取消。

编辑:但是我相信这不能在任务执行时停止它,只能阻止将来的执行。使用 boolean 标志要求任务了解 Thread.isInterrupted()系统。

关于java - 如何停止 Executors.newSingleThreadScheduledExecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306855/

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