参考答案
线程池的核心参数:
线程池中很多的参数,了解这些参数,对实际问题的定义和解决是非常重要的。
1. corePoolSize
核心线程数,即就是中线程池中长时间稳定存活的线程数。
2. maxPoolSize
最大线程数,重点强调线程中最大可包含的线程数。最大线程数的上限需要根据实际情况而定。
3. keepAliveTime
线程的存活时间,该参数是指非核心线程的存活时间,用来严格控制线程池中线程的数量尽可能的保持在一定的范围内,若要修改核心线程的存活时长,可参考相关参数。
4.ThreadFactory
线程创建的工厂,新的线程都是由ThreadFactory创建的,系统默认使用的是Executors.defaultThreadFactory创建的,用它创建出来的线程的优先级、组等都是一样的,并且他都不是守护线程。我们也可以使用自定义的线程创建工厂,并对相关的值进行修改。
5.WorkQueue
线程的工作队列,常见的类型有三种:
- 直接交换:SynchronousQueue,任务不多,是没有容量的,maxPoolSize需要大一点;
- 无界队列:LinkedBlockingQueue,可产生OOM;
- 有界队列:ArrayBlockingQueue。
以上,是Java面试题【创建一个线程池有哪些核心参数】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—