程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

创建线程池的4大方法,7个参数,4种拒绝策略

balukai 2024-12-27 11:56:51 文章精选 8 ℃

创建线程池的4大方法是:

  1. newCachedThreadPool():创建一个可缓存线程池,线程池的大小可以根据需求自动调整。
  2. newFixedThreadPool(int nThreads):创建一个固定大小的线程池,线程池中的线程数始终保持不变。
  3. newSingleThreadExecutor():创建一个单线程化的线程池,只有一个工作线程执行任务,保证所有任务按照指定顺序执行。
  4. newScheduledThreadPool(int corePoolSize):创建一个固定大小的线程池,支持定时以及周期性任务的执行。

创建线程池时常用的7个参数是:


  1. corePoolSize:核心线程数,线程池中始终保持存活的线程数量。
  2. maximumPoolSize:最大线程数,线程池中允许的最大线程数量。
  3. keepAliveTime:线程空闲时的存活时间,超过该时间未执行任务的线程将被销毁。
  4. unit:keepAliveTime的时间单位。
  5. workQueue:用于存放等待执行的任务的阻塞队列。
  6. threadFactory:线程工厂,用于创建线程。
  7. handler:拒绝策略,当线程池无法执行新的任务时,采取的策略。

常用的4种拒绝策略是:


  1. ThreadPoolExecutor.AbortPolicy:默认的拒绝策略,当线程池无法执行新的任务时,抛出RejectedExecutionException异常。
  2. ThreadPoolExecutor.CallerRunsPolicy:当线程池无法执行新的任务时,由调用线程执行该任务。
  3. ThreadPoolExecutor.DiscardOldestPolicy:当线程池无法执行新的任务时,丢弃最旧的任务,然后尝试重新提交新任务。
  4. ThreadPoolExecutor.DiscardPolicy:当线程池无法执行新的任务时,直接丢弃该任务,不做任何处理。


Tags:

最近发表
标签列表