01-JDK并发api

java.util.concurrent  作者:Doug Lea   道格·利     

参考博客:

https://juejin.im/entry/5e53e5c1f265da5735504fb6arrow-up-right

https://juejin.im/entry/5b6bec4e6fb9a04fe54916c4arrow-up-right

一.ThreadPoolExecutor:创建线程池的最全构造方法

public ThreadPoolExecutor(int corePoolSize,//核心线程数
                      int maximumPoolSize,//最大线程数
                      long keepAliveTime,//非核心线程保活时间
                      TimeUnit unit,//时间单位
                      BlockingQueue<Runnable> workQueue,//任务工作队列
                      ThreadFactory threadFactory,//创建线程工程
                      RejectedExecutionHandler handler)//达到最大线程数并且任务工作队列也满时,再提交任务时的处理策略)    

参数说明:  
keepAliveTime:
    当线程空闲时间达到keepAliveTime,该线程会退出,直到线程数量等于corePoolSize。  
    如果allowCoreThreadTimeout设置为true,则所有线程均会退出直到线程数量为0  

allowCoreThreadTimeout:
    是否允许核心线程空闲退出,默认值为false

二.jdk自带的集中线程池

Executors通过静态方法提供4种类型的线程池,他们都是调用ThreadPoolExecutor构造方法创建的

  • Executors.newFixedThreadPool(5)

  • Executors.newCachedThreadPool()

  • Executors.newSingleThreadExecutor()

  • Executors.newScheduledThreadPool(5)

三.当一个线程池里的线程异常后,jdk会怎么处理

四.使用线程池的好处

Last updated