从 javadoc 为ThreadPoolExecutor
:
当在方法execute(java.lang.Runnable) ...中提交新任务时。如果运行的线程数大于corePoolSize但小于maximumPoolSize,则只有在队列已满时才会创建新线程。
在这种情况下,我怎样才能让它ThreadPool
启动新线程而不是将任务提交到队列?
例子:
我有 corePoolSize=5 和 maxPoolSize=10 的线程和无界队列。
假设corePoolSize线程现在很忙,并且新任务到达 - 池必须启动新线程并执行新任务。
假设maxPoolSize线程现在很忙,并且新任务到达 - 池必须将任务持久化到队列中,并且第一个空闲线程必须接受这个任务并执行。