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

来源:8-3 线程池-3

pookly

2019-04-29

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

写回答

1回答

Jimin

2019-04-29

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

0
1
pookly
的确,资源有限是一点.线程调度周期也更长. 感谢老师解惑
2019-05-16
共1条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程