Lpp*_*Edd 5 java executorservice
如果我设置了一个ExecutorService产生ThreadFactory守护线程的 a ,我还需要显式调用该shutdown()方法吗?
Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setDaemon(true).build());
Run Code Online (Sandbox Code Playgroud)
嗯,根据setDaemon,
当唯一运行的线程都是守护线程时,Java 虚拟机退出。
因此,因为您使用的是守护线程,所以执行程序不会阻止您的应用程序完成。但这并不是说没有理由打电话shutdown。您可能仍希望阻止在申请结束之前的某个时间提交任何其他任务。
喜欢的话测试一下:(我把Guava的东西去掉了,但是原理是一样的)
public static void main(String... args)
{
final ExecutorService executorService = Executors.newSingleThreadExecutor(r -> {
final Thread thread = new Thread(r);
thread.setDaemon(false); //change me
return thread;
});
executorService.submit(() -> { while (true){ System.out.println("busy"); } });
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1867 次 |
| 最近记录: |