线程池的优势、主要参数、饱和策略

75 阅读1分钟

线程池的优势

  1. 降低资源消耗: 通过重用已创建的线程,减少了线程的创建和销毁带来的资源消耗。
  2. 提高响应速度: 线程池能够立即执行任务,而不需要等待线程的创建。
  3. 提高线程的可管理性: 统一分配、调优和监控线程,提高了程序的稳定性。

主要参数

  1. corePoolSize 核心线程数,定义了最小可以同时运行的线程数量。
  2. maximumPoolSize 最大线程数,当队列满时,当前可以同时运行的线程数量变为最大线程数。
  3. workQueue 任务队列,存放等待执行的任务。
  4. keepAliveTime 当线程池中的线程数量大于核心线程数时,非核心线程的空闲时间超过此值,将被回收。
  5. unit keepAliveTime 参数的时间单位。
  6. threadFactory 线程工厂,用于创建新线程。
  7. handler 饱和策略,定义了当工作队列和线程池的最大线程数都达到上限时的处理策略。

饱和策略

  1. AbortPolicy 抛出 RejectedExecutionException,拒绝新任务的处理。
  2. CallerRunsPolicy 调用执行自己的线程运行任务,如果执行程序已关闭,则会丢弃该任务。
  3. DiscardPolicy 不处理新任务,直接丢弃。
  4. DiscardOldestPolicy 丢弃队列中等待时间最长的任务,将新任务加入队列。