构造器
newFixedThreadPool
- 核心线程数 = 最大线程数,核心线程数可以指定
- 无超时时间
- 使用
LinkedBlockingQueue
newSingleThreadExecutor
- 核心线程数 = 最大线程数 = 1
- 无超时时间
- 使用
LinkedBlockingQueue
newCachedThreadPool
- 核心线程数为 0,最大线程数为 Integer 的最大值
- 超时时间为 60s
- 使用
SynchronousQueue
newScheduledThreadPool
- 核心线程数可以指定,最大线程数为 Integer 最大值
- 无超时时间
- 使用
DelayedWorkQueue
任务队列
LinkedBlockingQueue
队列空间上限为 Integer 最大值,配合固定线程数的线程池使用
SynchronousQueue
队列空间为 0,每个 take 操作都需要一个 put 操作,配合线程数无上限(实际上限为 Integer 最大值)的线程池使用
DelayedWorkQueue
- 队列空间会自动扩容
- 新增任务时会根据 delay 时间排序
- 取出任务时会先取到队列第一个任务,然后判断 delay 时间,再决定是否返回任务