Skip to content

java线程池

它采用了工厂设计模式,是一个管理线程,实现有策略的管理线程的工具。

它的几个重要参数:

java
   public ThreadPoolExecutor(int corePoolSize, // 核心线程数
                             int maximumPoolSize, // 最大线程数量
                             long keepAliveTime,	// 非核心线程,空闲存存活时间
                             TimeUnit unit,		// 时间单位
                             BlockingQueue<Runnable> workQueue,	// 任务队列
                             ThreadFactory threadFactory,	// 线程工厂
                             RejectedExecutionHandler handler) 	// 拒绝策略

线程池的创建方式(推荐使用 ThreadPoolExecutor):

java
public ThreadPoolExecutor(int corePoolSize,	// 核心线程数
                              int maximumPoolSize, 	// 最大线程数量
                              long keepAliveTime,	// 非核心线程,空闲存存活时间
                              TimeUnit unit,	// 时间单位
                              BlockingQueue<Runnable> workQueue)	// 任务队列

线程池的几种拒绝策略:

  1. AbortPolicy(中止策略)
java
ThreadPoolExecutor executor = new ThreadPoolExecutor(
    2, 4, 60L, TimeUnit.SECONDS,
    new ArrayBlockingQueue<>(2),
    new ThreadPoolExecutor.AbortPolicy()
);
  1. CallerRunsPolicy(调用者运行策略)3. DiscardPolicy(丢弃策略) 4. DiscardOldestPolicy(丢弃最老策略) 5. 自定义拒绝策略