如何在Java中使用ExecutorService(一个池Executors.newFixedThreadPool()或多个Executors.newSingleThreadExecutor())
如果多次调用方法someMethod(),如何最好地使用executorService: 我现在正在使用:如何在Java中使用ExecutorService(一个池Executors.newFixedThreadPool()或多个Executors.newSingleThreadExecutor()),java,executorservice,Java,Executorservice,如果多次调用方法someMethod(),如何最好地使用executorService: 我现在正在使用: public void someMethod() { ExecutorService executorService = Executors.newSingleThreadExecutor(); Future future = executorService.submit(() -> method()); } 或者我应该这样使用它
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());
}
创建线程池执行器是一项代价高昂的操作,而且您需要在不需要线程池时停止它们(否则会阻止JVM退出) 所以第二种选择更可取
拥有共享thead池的唯一缺点是,其他一些代码可能会提交长时间运行的任务,而在
someMethod()
中提交的任务可能需要等待空闲工作线程 你的目标是什么?你想归档什么?