⭐Q1:说一下线程池的核心参数和实现原理
Q2:线程池中有哪些常见的阻塞队列?
Q3:如何确定核心线程数?
- 高并发,任务执行时间短 ==》 (CPU核数(在任务管理器的性能中查看)+ 1),减少线程上下文切换
- 并发不高、任务执行时间长
- IO密集型任务 ==》(CPU核数 * 2 + 1)
- 计算密集型任务 ==》(CPU核数 + 1)
- 并发高、业务执行时间长,解决这种类型任务的关键不在于线程池而在于整体架构的设计,看看业务里某些数据是否能做缓存是第一步,增加服务器是第二步,线程池设置参考2
Q4:线程池的种类有哪些?
Q5:为什么线程池不允许executors创建?
Q6:真实使用场景
Q7:如何控制某个方法允许并发访问的线程数?
⭐Q8:谈谈你对ThreadLocal的理解