说一说newSingleThreadExecutor工作原理
线程池特点:
- 核心线程数为1
- 最大线程数也为1
- 阻塞队列是无界队列LinkedBlockingQueue,可能会导致OOM
- keepAliveTime为0
工作流程:
- 提交任务
- 线程池是否有一个线程正在运行,如果没有,新建线程执行任务
- 如果有并且非空闲状态,将任务加到阻塞队列
- 当前的唯一线程,从队列取任务,执行完一个,再继续取,一个线程执行任务。
使用场景:
适用于串行执行任务的场景,一个任务一个任务地执行。
线程池特点:
工作流程:
使用场景:
适用于串行执行任务的场景,一个任务一个任务地执行。