连接池的定义
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用
1. 线程池
线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度
特点:
- 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的销耗。提高响应速度: 当任务到达时,任务可以不需要等待线程创建就能立即执行。提高线程的可管理性: 线程是稀缺资源,如果无限制的创建,不仅会销耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
其功能为:
重用存在的线程,减少对象创建、消亡的开销可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。提供定时执行、定期执行、单线程、并发数控制等功能。
2. 创建方式
一共有4种创建方式分别为一池一线程、一池n线程、一池可扩容线程、一池定时及周期线程
Executors.newFixedThreadPool(int)
一池N线程,控制最大的并发数,超出的线程会在队列中等待
1 |
|
Executors.newSingleThreadExecutor()
一池一线程
1 |
|
Executors.newCachedThreadPool()
一池可扩容根据需求创建线程,可灵活回收空闲线程
执行完线程,可不用再扩建继续使用
1 |
|
Executors.newScheduledThreadPool()
,支持定时及周期性任务执行
1 2 3 4 5 6 7 8 9 |
|
到此这篇关于java线程池的四种创建方式的文章就介绍,希望可以帮到你。