【43、线程池的七个重要参数】

153 阅读1分钟
  1. 核心线程数(corePoolSize):线程池的基本大小,当提交一个任务到线程池时,线程池会创建一个线程来执行任务,即使其他空闲的基本线程能够执行新任务,也会继续创建线程,直到达到核心线程数为止。
  2. 最大线程数(maximumPoolSize):线程池允许创建的最大线程数,当活动线程数达到最大线程数时,后续新任务将被阻塞。
  3. 工作队列(workQueue):用来缓存任务的阻塞队列,当核心线程都在执行任务时,新任务会被放入阻塞队列中等待执行。队列容量一般有固定大小和无界两种,固定大小的队列需要设置一个合适的容量,否则可能会导致队列溢出或者任务丢失。
  4. 空闲线程存活时间(keepAliveTime):当线程池中的线程数量超过核心线程数时,空闲线程的存活时间。空闲时间超过 keepAliveTime 的线程会被销毁直到线程池中的线程数不大于核心线程数。
  5. 空闲线程存活时间单位(unit) : keepAliveTime的计量单位
  6. 拒绝策略(handler):当线程池中的线程数量达到最大线程数且队列已满时,新提交的任务该如何处理。有多种处理方式可供选择,如直接抛出异常、丢弃任务等。
  7. 线程工厂(threadFactory):线程工厂用于创建线程,可以自定义线程的名称、优先级等信息。