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),并且没有其他非守护线程 运行,如主线程或美国东部时间,虚拟机将终止(停止所有线程)
如果我像这样实例化一个执行器:
private final Executor executor = Executors.newFixedThreadPool(2);
然后执行如下代码:
executor.execute(() -> {
doSomeThingHere();
});
代码执行后线程池会被销毁怎么办? Executor没有shutdown方法?每次我 运行 通过应用程序时,我都会在我的应用程序中遇到线程堆积。这可能不是原因,但我想了解这一点并排除它。目前每次我想运行在后台编写代码时,我都会以这种方式实例化一个新的执行程序。
使用 ExecutorService
而不是 Executor
因为 newFixedThreadPool()
returns 一个 ExecutorService
并且有一个 shutdown
方法。
如果执行器是使用 ThreadFactory
创建守护线程(参见 setDaemon),并且没有其他非守护线程 运行,如主线程或美国东部时间,虚拟机将终止(停止所有线程)