线程池的核心参数有哪些?提交任务后是怎样执行的?
先自己想一想,再看参考要点
参考要点
- 参数有核心线程数、最大线程数、空闲线程的存活时间、任务队列、线程工厂和拒绝策略
- 提交时线程数小于核心数就新建线程,否则放入队列,队列满且小于最大线程数时新建线程执行当前任务,再不行就执行拒绝策略
- 例如核心 2、最大 4、队列 2 时第 7 个任务被拒绝
- 不用 Executors 的 newFixedThreadPool()、newSingleThreadExecutor()、newCachedThreadPool(),它们的队列或线程数没有上限,要直接创建 ThreadPoolExecutor 并使用有界队列