线程池面试题 1. 线程池的优势2. 线程池的4种创建方式Executors2.1 线程池在开发场景中怎么使用2.2 推荐使用 ThreadPoolExecutor 构造函数创建线程池2.3 execute() vs submit()2.4 shutdown() VS shutdownNow()2.5 isTerminated() VS isShutdown() 3. 线程池的7大参数4. 线程池原理5. 线程池拒绝策略6. 面试题6.1 线程池的线程是如何做到复用的6.2 核心线程数和最大线程数和工作线程个数的关系是什么呢?6.3 存活时间keepAliveTime6.4 什么是非核心线程呢?是不是先创建的线程就是核心线程,后创建的就是非核心线程呢?6.5 怎么保证核心线程不会被回收呢?还是跟工作线程的个数有关,每一个线程在取任务的时候,线程池会比较当前的工作线程个数与核心线程数。 7. 线程池合理线程数7.1 如何判断是 CPU 密集任务还是 IO 密集任务? 8.线程池状态9. 使用线程池注意事项10. 加餐:Callable+ThreadPoolExecutor示例代码