大家好,欢迎来到IT知识分享网。
java线程池 实现原理
线程池的好处:
- 降低资源消耗
- 提高响应速度
- 提高线程的可管理性
线程池的实现原理
下图是提交一个新任务到线程时,线程池的处理流程
!
ThreadPoolExecutor执行execute方法分下面4种情况
- 如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意!执行该步骤需要获取全局锁)
- 如果运行的线程等于或者多于corePoolSize ,则将任务加入BlockingQueue
- 如果无法将任务加入BlockingQueue (队列已满),则创建新的线程来处理任务(注意!执行该步骤需要获取全局锁)
- 如果创建线程将使当前运行的线程超过maximumPoolSize,任务将被拒绝,并调用RejectedExecutionHandler.rejectedExecution() 方法。
- 线程池中的线程执行任务分两种情况
!
- 在execute()方法中创建一个线程时,会让这个线程执行当前任务。
- 这个线程执行完上图中1的任务后会反复从BlockingQueue获取任务来执行。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15625.html