码迷,mamicode.com
首页 > 编程语言 > 详细

Java线程池

时间:2017-04-14 11:55:04      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:存储   java线程   利用   技术分享   content   str   exec   示意图   没有   

线程池的好处

1. 降低资源的消耗

通过重复利用已创建的线程降低线程创建和销毁所造成的消耗

2. 提高响应速度

当任务到达时,任务可以不需要等到线程创建就能立即执行

3. 提高线程的可管理型

线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。

 

实现原理

当提交一个新任务到线程池时,线程池的处理流程为:

技术分享

 

1). 线程池判断核心线程池里的线程是否都在执行任务。

如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。

2). 线程池判断工作队列是否已经满。 

如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程。

3). 线程池判断线程池的线程是否都处于工作状态。

如果没有,则创建一个新的工作线程来执行任务。如果已经满了,则交给饱和策略来处理这个任务。

 

ThreadPoolExecutor执行execute()方法的示意图:

技术分享

 

Java线程池

标签:存储   java线程   利用   技术分享   content   str   exec   示意图   没有   

原文地址:http://www.cnblogs.com/study-everyday/p/6707968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!