我不清楚它是什么意思" corePoolSize" java.util.concurrent.Executors类中newScheduledThreadPool()方法的参数。
如果我输入更高的数字值会发生什么?如果我输入更低的数字值会发生什么?
// corePoolSize = 1;
java.util.concurrent.Executors.newScheduledThreadPool(corePoolSize);
或
// corePoolSize = 5;
java.util.concurrent.Executors.newScheduledThreadPool(corePoolSize);
定义该值的正确方法是什么?
答案 0 :(得分:4)
在ThreadPoolExecutor的javadoc中提取详细解释 - 提取:
当在方法
execute(Runnable)
中提交新任务且运行的线程少于corePoolSize
时,即使其他工作线程处于空闲状态,也会创建一个新线程来处理该请求。如果运行的线程数超过corePoolSize
但小于maximumPoolSize
,则只有在队列已满时才会创建新线程。
因此它定义是否应该创建线程,具体取决于执行程序的状态。
对于ScheduledExecutorService
,如果您不打算在给定时间运行多个任务,则corePoolSize
为1可能更有效。并且如果需要,它不会阻止创建更多线程。