1.FixedThreadPool
2.CachedThreadPool 弹性有任务就会开启新线程 默认线程等待时间60s
3.SingleThreadPool 单线程只有一个线程 保证线程执行先后顺序
4.ScheduledThreadPool 定时任务
5.WorkStealingPool 工作窃取
6. ForkJoinPool fork分叉 join合并
------------------------------------------------------------------------------------------------------------------------------------
ThreadPoolExecutor 支撑了线程池!也可以自己配置参数和策略
1-6的线程池大部分是ThreadPoolExecutor实现的(参考JavaAPI)
1. ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(5);
阻塞队列:LinkedBlockingQueue
2. ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
阻塞队列:SynchronousQueue 特殊的TransferQueue 容量为0
3.ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();
阻塞队列:LinkedBlockingQueue
4. ScheduledExecutorService newScheduledThreadPool= Executors.newScheduledThreadPool(4);
阻塞队列:DelayQueue 延时队列
5. ExecutorService newWorkStealingPool = Executors.newWorkStealingPool();
6. ForkJoinPool forkJoinPool = new ForkJoinPool();
-----------------------------------------------------------------------------------------------------------
介绍ThreadPoolExecutor
ThreadPoolExecutor的构造方法如下:
装任务用的是阻塞队列BlockingQueue