public class CustomThreadPoolConfig { //默认参数 private static final int DEFAULT_CORE_POOL_SIZE = 10;//默认核心线程池大小 private static final int DEFAULT_MAXIMUM_POOL_SIZE_SIZE = 100;//默认最大线程池大小 private static final int DEFAULT_KEEP_ALIVE_TIME = 1;//默认空闲超时时间,超过这个时间就是死了 private static final TimeUnit DEFAULT_TIME_UNIT = TimeUnit.MINUTES;//时间单位是分钟 private static final int DEFAULT_BLOCKING_QUEUE_CAPACITY = 100;//默认阻塞队列 private static final int BLOCKING_QUEUE_CAPACITY = 100;//阻塞队列容量
//可配置参数 private int corePoolSize = DEFAULT_CORE_POOL_SIZE; private int maximumPoolSize = DEFAULT_MAXIMUM_POOL_SIZE_SIZE; private long keepAliveTime = DEFAULT_KEEP_ALIVE_TIME; private TimeUnit unit = DEFAULT_TIME_UNIT; //使用有界队列 private BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(BLOCKING_QUEUE_CAPACITY); }
ThreadPoolFactoryUtil
用于管理线程池、创建线程池,可创建守护和飞守护线程池
private static final Map<String, ExecutorService> THREAD_POOLS = new ConcurrentHashMap<>();//存放线程池的map