使用线程池的好处
- 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
- 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
- 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
自定义线程池
使用有界队列
- 若线程池实际线程数小于
corePoolSize
,则优先创建线程; - 若大于
corePoolSize
,则会将新的任务加入到队列中; - 若队列已满。则在总线程不大于
maximumPoolSize
的前提下创建新线程,否则执行拒绝策略。
使用无界队列
- 若线程池实际线程数小于
corePoolSize
,则创建线程; - 若线程池实际线程数达到
corePoolSize
,则线程数不会继续增加,将新任务加入到队列;
网友评论