鉴于多次调用someMethod()方法,如何最好地使用executorService:
我正在使用:
public void someMethod() {
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future future = executorService.submit(() -> method());
}
或者我应该这样使用它
ExecutorService executorService = Executors.newFixedThreadPool(8);
public void someMethod() {
Future future = executorService.submit(() -> method());
}
答案 0 :(得分:0)
创建线程池执行程序是一项昂贵的操作,您还需要在不需要它们时停止线程池(否则它将阻止JVM退出)。
所以第二种选择更可取。
拥有共享主题池的唯一缺点是,其他一些代码可能会提交长时间运行的任务,并且您在someMethod()
中提交的任务可能需要等待空闲的工作线程。