ExecutorService.newCachedThreadPool()
的定义是
public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory) {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>(),
threadFactory);
}
它使用
corePoolSize = 0
,maximumPoolSize = Integer.MAX_VALUE
和无限制队列创建一个池。但是在doc的
ThreadPoolExecutor
中,它说:那么在这种情况下
corePoolSize = 0
如何工作?最初有0个线程,因此尽管在文档中没有说明,但我认为它将为提交的第一个任务创建一个新线程。但是,现在,根据上面的文档,“我们只有1个线程> corePoolSize = 0,有1个线程 最佳答案
并不真地。
请注意newCachedThreadPool
使用 SynchronousQueue
:
这表示