Java并发20:ThreadPoolExecutor详解 - 深入线程池源码
核心参数详解 public ThreadPoolExecutor( int corePoolSize, // 核心线程数 int maximumPoolSize, // 最大线程数 long keepAliveTime, // 空闲线程存活时间 TimeUnit unit, // 时间单位 BlockingQueue<Runnable> workQueue, // 任务队列 ThreadFactory threadFactory, // 线程工厂 RejectedExecutionHandler handler // 拒绝策略 ) { ... } 参数说明 corePoolSize(核心线程数): 即使空闲也不会回收 除非设置allowCoreThreadTimeOut(true) maximumPoolSize(最大线程数): 队列满后创建的临时线程 空闲超过keepAliveTime后回收 workQueue(任务队列): // 1. 有界队列(推荐) new ArrayBlockingQueue<>(100) // 2. 无界队列(慎用) new LinkedBlockingQueue<>() // 可能OOM // 3. 同步队列(不存储) new SynchronousQueue<>() // 直接交付给线程 // 4. 优先级队列 new PriorityBlockingQueue<>() // 按优先级执行 任务提交流程 execute() vs submit(): ...