ThreadPoolExecutor
(线程池的实现类)
**core没满,先添加core(核心线程)
否则,queue没满,扔到queue(任务队列中)
否则,noncore没满,创建noncore(非核心线程)
否则,拒绝策略
concurrent(并发是指任务提交)
parallel(并行是指任务执行,并行是并发的子集)
submit方法(带返回值)
execute方法(无返回值)**
Executors.newSingleThreadExecutor();
(一个线程的线程池,相比较于Thread,它拥有任务队列、生命周期管理)
Executors.newCachedThreadPool();
(无限线程池)
Executors.newFixedThreadPool(cpuCoreNum);
(一般都不用,自己估算,进行精确定义)
Executors.newScheduledThreadPool(poolSize);
(定时任务线程池)
ForkJoinPool
分解汇总的任务
用很少的线程可以执行很多的任务(子任务)TPE做不到先执行子任务
CPU密集型
Executors.newWorkStealingPool();
newWorkStealingPool不是ThreadPoolExecutor的扩展,它是新的线程池类ForkJoinPool的扩展,但是都是在统一的一个Executors类中实现,由于能够合理的使用CPU进行对任务操作(并行操作),所以适合使用在很耗时的任务中