请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

cacheThreadPool,我理解的是只要max没满就可以无限创建线程

如果把corePoolSize设置Integer.MAX_VALUE,省去了queue是否满的判断,这样会不会更好?

正在回答 回答被采纳积分+3

1回答

Jimin 2019-04-29 22:38:07

你好,理论上是可以这样做,但实际中这样设置代码是有问题的,首先你的系统不一定能开那么多thread,其次开启thread是要消耗内存和cpu资源的,你的java进程可以使用的内存是有限的,可以使用的cpu资源也是受服务器限制的,还有一点是,过多的线程会导致cpu时间片调度变得更复杂(所以线程调度一轮可能需要花费很长一段时间),导致达不到使用线程池的效果。corePoolSize开的太大,其实就已经失去了线程池的意义。

0 回复 有任何疑惑可以回复我~
  • 提问者 pookly #1
    的确,资源有限是一点.线程调度周期也更长.
    感谢老师解惑
    回复 有任何疑惑可以回复我~ 2019-05-16 00:12:09
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号