ThreadPoolExecutor动态设置corePoolSize大小
ThreadPoolExecutor动态设置corePoolSize大小,
调用setCorePoolSize(int size)当调整的参数变小的时候多余的线程就会不会被回收掉。
参考了这篇文章设置了下http://freeheron.javaeye.com/blog/664278还是不行
请问各位大侠们如何解决????
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
corePoolSize不需要调整啊,corePoolSize有点像是工作线程,当缓冲队列没满的时,由corePoolSize的线程从缓存队列中取数据来消费。当缓冲队列满的时候,由ThreadPoolExecutor创建数量不大于maxinumPoolSize的线程来直接处理线程请求。如果请求线程数大于maxinumPoolSize,则使用RejectedExecutionHandler定义策略进行处理。
大师设计的这个类的设计确实很niubility.
我的意思是根据给定处理数据数量反过来控制线程数的数量,这样可以减少系统中总的线程数,这样其他线程可被快速响应。
难道ThreadPoolExecutor线程池中的线程小于等于核心线程数时会被自主回收吗???
使用的时候,这个参数都不作调整啊,有调整的必要吗
哪位可以解决这个问题
根据经验,和专家推荐,corePoolSize的值等于服务器CPU的个数 + 1,就是最优值,可以直接设定死,没必要动态改变。
当然需要计算线程处理时间和等待时间。
引用来自#4楼“刘吵”的帖子
引用来自#3楼“鉴客”的帖子
这个应该在初始化的时候就设置好,不支持动态调整
引用来自#3楼“鉴客”的帖子
这个应该在初始化的时候就设置好,不支持动态调整
这个应该在初始化的时候就设置好,不支持动态调整
老大透露个呗