线程池
简介
线程池是一种基于池化思想的线程管理工具。
优点
- 降低资源消耗
- 提高响应速度
- 提高线程的可管理性
- 提供可扩展性
使用场景
- 连接池
- 线程隔离
- 开发中需要创建5个以上的线程就可以考虑使用线程池
线程池核心参数
参数名 | 类型 | 含义 |
---|---|---|
corePoolSize | int | 核心线程数 |
maxPoolSize | int | 最大线程数 |
keepAliveTime | long | 保持存活时间 |
workQueue | BlockingQueue | 任务存储队列 |
threadFactory | ThreadFactory | 线程池创建新线程的线程工厂类 |
Handler | RejectExecutionHandler | 线程无法接收任务时的拒绝策略 |
原理
提交任务处理流程图
flowchart TD A[提交任务] --> B{<=corePoolSize} B -->|是| C{任务队列是否已满} B -->|否| B1(创建核心线程并执行任务) C -->|是| D{>maxPoolSize} C -->|否| C1(添加任务到队列) D -->|是| E(按照拒绝策略处理无法执行的任务) D -->|否| D1(创建线程并执行任务) 标签:--,创建,队列,任务,线程,maxPoolSize From: https://www.cnblogs.com/VergilYang/p/17510144.html