文章目录
- 一、线程池 (`重点`)
- 二、 Java线程池的继承关系
-
- 1、Executor 框架结构
- 2、 ThreadPoolExecutor (重点)
- 3、 线程池的4种拒绝策略
- 4、 Executors工具类 (重点)
- 5、Executors弊端 (`重点`)
- 6、如何定义线程池参数
- 7、 如何处理执行任务异常
- 三、 Fork/Join (`熟悉`)
一、线程池 (重点
)
池化技术
有很多, 比如线程池
、数据库连接池
、HTTP连接池
等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。
这里借用 《Java 并发编程的艺术》 提到的来说一下使用线程池的好处:
降低资源消耗。
通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 (创建的线程,实际最后要和操作系统的线程做映射,很消耗资源)提高响应速度。
当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。
线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。- 配置的线程数少了,会导致系统运行效率不高;线程配置多使用线程池,我们可以根据系统的环境情况,来手动或自动设置线程数目会导致系统拥挤、占用内存多。所以