java理论总结
一、线程池的原理
线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线 程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线 程执行完毕,再从队列中取出任务来执行
线程池的组成:
一般的线程池主要分为以下 4 个组成部分:
1.线程池管理器:用于创建并管理线程池
2.工作线程:线程池中的线程
3.任务接口:每个任务必须实现的接口,用于工作线程调度其运行
4.任务队列:用于存放待处理的任务,提供一种缓冲机制
二、线程执行的顺序
- 当线程于核心线程数时,会一直创建线程直到线程数等于核心线程数
- 当线程于核心线程数时,新加入的任务会被放到任务队列等待执行
- 当任务队列已满,又有新的任务时,会创建线程直到线程数量等于最大线程数
- 当线程等于最大线程数,且任务队列已满时,新加入任务会被拒绝
三、线程池的核心参数有哪些?
默认参数
CorePoolsize=1
Queuecapacity=integer.Max_Value
maxPoolsize=integer.Max_Value
keepAlivetime=60秒
allowCoreThreadTimeout = false
rejectedExecutionHandler = AbortPolicy()
具体介绍
- core