一、创建线程池的方式有两种
1、一种是通过Executors工厂类提供的方法,共有4种不同的线程池可供使用;
2、另一种是通过ThreadPoolExecutor类自定义创建。
二、Executors可以创建4种线程池
1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理所需,可灵活回收空闲线程,若线程数不够,则新建线程。
2、newFixedThreadPool:创建一个固定大小的线程池。可控制并发的线程数量,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。
3、newSingleThreadExecutor:创建一个单线程的线程池,即只创建唯一的工作者线程来执行任务,保证所有任务按照指定顺序执行。
4、newScheduleThreadPool:创建一个定长的线程池,支持定时及周期性任务执行。
三、自定义线程池的7个参数
1、最大线程数
2、核心线程数
3、空闲线程等待时间
4、空闲线程等待时间单位
5、线程工厂
6、工作队列
7、拒绝策略