线程池

线程池优势
  1. 避免频繁创建与销毁
  2. 复用线程
  3. 方便线程并发管控
  4. 延时定时线程池
线程池的主要参数
  • corePoolSize:核心线程数,优点1、2,低于核心数先创建线程,都算有空闲线程
  • maximumPoolSize:最大并发数量
  • keepAliveTime:线程保活时间,可用于核心与非核心
  • workQueue :执行任务的等待队列
  • threadFactory:用于创建线程
  • handler:当maximumPoolSize和workQueue满了执行的策略

添加任务到线程池时候,首先要满足corePoolSize数量,都算有空闲线程也要创建线程。当corePoolSize已满时候,我们会把线程添加到workQueue队列中,在队列满了时,在maximumPoolSize是否还可以执行非核心线程然后添加,可能导致后来的线程先执行。


添加策略
配置线程池
  • CPU密集型任务:CPU核心数+1。CPU使用率高,过多线程造成切换过度
  • IO密集型任务:0 ,最大线程数(参照okhttp)。CPU利用率不高,线程越多能充分利用CPU

你可能感兴趣的:(线程池)