Executor FixedThreadPool 执行后会发生什么,因为执行器没有关闭方法?

What happens to the Executor FixedThreadPool after execution, as executor does not have a shutdown method?

如果我像这样实例化一个执行器:

private final Executor executor = Executors.newFixedThreadPool(2);

然后执行如下代码:

executor.execute(() -> {
                    doSomeThingHere();
                });

代码执行后线程池会被销毁怎么办? Executor没有shutdown方法?每次我 运行 通过应用程序时,我都会在我的应用程序中遇到线程堆积。这可能不是原因,但我想了解这一点并排除它。目前每次我想运行在后台编写代码时,我都会以这种方式实例化一个新的执行程序。

使用 ExecutorService 而不是 Executor 因为 newFixedThreadPool() returns 一个 ExecutorService 并且有一个 shutdown 方法。


如果执行器是使用 ThreadFactory 创建守护线程(参见 setDaemon),并且没有其他非守护线程 运行,如主线程或美国东部时间,虚拟机将终止(停止所有线程)