初始化线程池:
ThreadPoolExecutor executor = new ThreadPoolExecutor(10,10,10,TimeUnit.SECONDS, new LinkedBlockingQueue<>(10000),
Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy());
参数补充说明:
名称 | 类型 | 说明 |
---|---|---|
corePoolSize | int | 核心线程池大小 |
maximumPoolSize | int | 最大线程数大小 |
keepAliveTime | long | 线程最大空闲时间 |
unit | TimeUnit | 时间单位 |
workQueue | BlockingQueue |
线程等待队列 |
threadFactory | ThreadFactory | 线程创建工厂 |
handler | RejectedExecutionHandler | 拒绝策略,默认为AbortPolicy |
ThreadPoolExecutor提供的拒绝策略补充说明:
名称 | 说明 | 备注 |
---|---|---|
AbortPolicy | 拒绝任务,直接抛出异常 | 默认策略 |
CallerRunsPolicy | 由主线程去执行任务 | |
DiscardPolicy | 丢弃任务,不抛出异常,也不执行 | 方法实现为空 |
DiscardOldestPolicy | 抛弃队列中最旧的任务,然后将任务加入队列中 |
原文:https://www.cnblogs.com/z-dk/p/13155849.html