当前位置:  开发笔记 > 编程语言 > 正文

newScheduledThreadPool()方法的参数“ corePoolSize”是什么意思?

如何解决《newScheduledThreadPool()方法的参数“corePoolSize”是什么意思?》经验,为你挑选了1个好方法。

我不清楚类java.util.concurrent.Executors中newScheduledThreadPool()方法的“ corePoolSize”参数是什么意思。

如果我输入较高的数值会发生什么,如果我输入较低的数值会发生什么?

// corePoolSize = 1;
java.util.concurrent.Executors.newScheduledThreadPool(corePoolSize);

要么

// corePoolSize = 5;
java.util.concurrent.Executors.newScheduledThreadPool(corePoolSize);

定义该值的正确方法是什么?



1> assylias..:

在ThreadPoolExecutor的javadoc中详细说明了-提取:

当在method中提交新任务execute(Runnable)并且corePoolSize运行的线程少于线程数量时,即使其他工作线程处于空闲状态,也会创建一个新线程来处理请求。如果正在运行的线程多于corePoolSize但少于maximumPoolSize线程,则仅在队列已满时才创建新线程。

因此,它根据执行程序的状态来定义是否应创建线程。

对于a ScheduledExecutorService,如果您不打算在给定时间运行多个任务,则a corePoolSize的效率可能更高。而且,如果需要,它不会阻止创建更多线程。

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有