1、newCachedThreadPool():可缓存的线程池,核心线程数量为0,最大线程数量为INT_MAX。线程空闲时间超过60秒被回收。适合处理大量小任务。
2、newFixedThreadPool()。固定线程个数的线程池,线程都是核心线程,没有应急线程。适合处理量少计算量大的任务。
3、newScheduledThreadPool。核心线程数固定,最大线程数为INT_MAX,空闲线程会立即回收。
4、newSingleThreadPool,线程池里面只有一个线程,任务队列没有大小限制。
拒绝策略
核心线程都被占用,再来任务就会放到任务队列(阻塞队列),任务队列满了以后会创建应急线程来处理这个任务,如果线程到达最大线程数,就会触发拒绝策略
1、终止策略
抛出RejectedExecutionException异常。
2、调用者运行策略
由提交任务的这个线程运行
3、丢弃最早未处理请求策略
丢弃最先进入阻塞队列的任务以腾出空间让新的任务入队列
4、丢弃策略,什么都不做,即丢弃新提交的任务。