ThreadPool
ThreadPool
MR.XSS自定义线程池
线程池的意义:
- 降低资源消耗,复用已创建的线程,降低开销、控制最大并发数;
- 隔离线程环境,可以配置独立线程池,将较慢的线程与较快的隔离开,避免相互影响;
- 实现任务线程队列缓冲策略和拒绝策略;
- 实现某些与时间相关的功能,如定时执行和周期执行等。
结构图
自定义阻塞队列
阻塞队列使用一个双端队列实现,方便进行操作
参数
任务队列 ArrayDeque
锁 ReentrantLock
生产者、消费者条件变量
最大容量 Capcity
具体实现
1 | //阻塞队列 |
自定义线程池
参数
阻塞队列,用于保存任务
阻塞队列,最大长度,最大任务数
线程集合
核心线程数
超时时间
时间单位
拒绝策略
具体实现
1 | class ThreadPool { |
拒绝策略
1 | interface RejectPolicy<T> { |
Comment
匿名评论隐私政策