Mat*_*all 14 java executorservice
我正在Executors.newScheduledThreadPool()创建一个ScheduledExecutorService,指定线程数如下:
int corePoolSize = 42;
ScheduledExecutorService foo = Executors.newScheduledThreadPool(corePoolSize);
Run Code Online (Sandbox Code Playgroud)
根据JavaDocs,corePoolSize参数设置
即使它们处于空闲状态,也要保留在池中的线程数.
这是否意味着此ExecutorService实现可能会corePoolSize根据需要创建多个线程,类似于缓存的线程池?
这是否意味着此ExecutorService实现可能会
corePoolSize根据需要创建多个线程?
是的,这正是它的意思.存在的原因corePoolSize是线程创建的代价.如果您希望在执行程序服务中触发大量短期任务,您可能希望在给定的时间点找到大量空闲线程.
而不是让这些线程死亡,只是在很短的时间内被新创建的线程替换,corePoolSize将确保总是存在许多旋转线程.