1.FutureTask->RunnableFuture->Runnable,Future
即是任务,也是Future,线程返回结果存储在自己的Future里
2.CompletableFuture管理多个Future结果
3.ThreadPoolExecutor
所有线程共有同一个任务队列
核心线程数
最大线程数
空闲时间
空闲时间单位
任务队列
线程工厂类
任务拒绝策略 jdk默认四种
Abort:抛弃异常
Discard:丢弃任务
DiscardOldest:丢弃最老的
CallerRuns:提交线程处理任务
自定义策略
4.ForkJoinPool
分解汇总任务
WorkStealingPool
每一个线程都有自己的任务队列,当任务队列为空时,会去其他线程的任务队列取任务来执行
RecursiveAction 没有返回值 RecursiveTask 有返回值
递归任务,进行切分
5.Executors