为什么要在创建newSingleThreadScheduledExecutor之后立即关闭?

问题描述 投票:1回答:1

[projectreactor 3.3.1具有包含此代码的类reactor.core.scheduler.ElasticScheduler

this.exec = Executors.newSingleThreadScheduledExecutor();
this.exec.shutdownNow();

为什么要这样做?

[An ExecutorService can be shut down, which will cause it to reject new tasks,因此上面创建的ScheduledExecutorService将变得无用。

executorservice project-reactor
1个回答
0
投票

...上面创建的ScheduledExecutorService将变得无用。

如果您确实想向其提交要执行的任务,是有用的。

为什么要这样做?

非常简单,为了获得执行服务,该服务总是拒绝提交给它的新任务,而不执行其中的任何任务。在ElasticScheduler的当前实现中,它用于SHUTDOWN字段,该字段是放置了封闭式调度程序后CachedService方法返回的pick()

因此,在此用例中非常有意义,因为您明确地不希望在调用dispose()之后再计划任何新任务。

© www.soinside.com 2019 - 2024. All rights reserved.