content: package com.yuu.ymall.web.admin.commons.utils;
  
  import java.util.concurrent.ArrayBlockingQueue;
  import java.util.concurrent.BlockingQueue;
  import java.util.concurrent.ThreadPoolExecutor;
  import java.util.concurrent.TimeUnit;
  
  /**
   * 线程池工具类
   *
   * @Classname ThreadPoolUtil
   * @Date 2019/5/13 16:43
   * @Created by Yuu
   */
  public class ThreadPoolUtil {
  
      //线程缓冲队列
      private static BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(100);
      // 核心线程数，会一直存活，即使没有任务，线程池也会维护线程的最少数量
      private static final int SIZE_CORE_POOL = 5;
      // 线程池维护线程的最大数量
      private static final int SIZE_MAX_POOL = 10;
      // 线程池维护线程所允许的空闲时间
      private static final long ALIVE_TIME = 2000;
  
      private static ThreadPoolExecutor pool = new ThreadPoolExecutor(SIZE_CORE_POOL, SIZE_MAX_POOL, ALIVE_TIME, TimeUnit.MILLISECONDS, bqueue, new ThreadPoolExecutor.CallerRunsPolicy());
      static {
          pool.prestartAllCoreThreads();
      }
  
      public static ThreadPoolExecutor getPool() {
          return pool;
      }
  }
  