Java线程池系列--线程池的原理(执行流程/状态转换)
原文网址:Java线程池系列—线程池的原理(执行流程/状态转换)_IT利刃出鞘的博客-CSDN博客
简介
本文介绍Java线程池的原理,包括:线程池的流程、线程池的结构、线程池的任务状态。
执行流程
流程图
- 提交任务
线程池判断核心线程池(核心线程数)里的线程是否已经满了(全都在执行任务)。
如果不是:看线程数是否到达指定的核心线程池的大小
- 如果不是:则创建一个新的线程来执行任务。
- 如果是:使用空闲的线程来执行任务
- 如果是,则进入下个流程。
线程池判断工作队列是否已满。
- 如果没有满,则将新提交的任务存储在这工作队列里。
如果工作队列满了,则进入下一个流程。
- 队列见:Java多线程—队列(Queue)—使用/教程/实例_IT利刃出鞘的博客-CSDN博客
线程池判断线程池的所有线程(最大线程数)是否已经满了(全都在执行任务)。
如果不是:看线程数是否到达指定的最大线程池的大小
- 如果不是:则创建一个新的线程来执行任务。
- 如果是:使用空闲的线程来执行任务
- 如果是:则交给饱和策略来处理这个任务。(饱和策略见:链接)
上边是文章的部分内容,为便于维护,全文已迁移到此网址:Java-线程池的原理(执行流程/状态转换) - 自学精灵
还没有评论,来说两句吧...