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) // 任务队列线程池的几种拒绝策略:
- AbortPolicy(中止策略)
java
ThreadPoolExecutor executor = new ThreadPoolExecutor(
2, 4, 60L, TimeUnit.SECONDS,
new ArrayBlockingQueue<>(2),
new ThreadPoolExecutor.AbortPolicy()
);- CallerRunsPolicy(调用者运行策略)3. DiscardPolicy(丢弃策略) 4. DiscardOldestPolicy(丢弃最老策略) 5. 自定义拒绝策略