Java线程池系列--线程池的原理(执行流程/状态转换)

本是古典 何须时尚 2023-10-01 17:18 72阅读 0赞

原文网址:Java线程池系列—线程池的原理(执行流程/状态转换)_IT利刃出鞘的博客-CSDN博客

简介

本文介绍Java线程池的原理,包括:线程池的流程、线程池的结构、线程池的任务状态。

执行流程

流程图

6c6c5993c30c4892bdedc1d3bf019937.png

  1. 提交任务
  2. 线程池判断核心线程池(核心线程数)里的线程是否已经满了(全都在执行任务)。

    1. 如果不是:看线程数是否到达指定的核心线程池的大小

      1. 如果不是:则创建一个新的线程来执行任务。
      2. 如果是:使用空闲的线程来执行任务
    2. 如果是,则进入下个流程。
  3. 线程池判断工作队列是否已满。

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

      1. 队列见:Java多线程—队列(Queue)—使用/教程/实例_IT利刃出鞘的博客-CSDN博客
  4. 线程池判断线程池的所有线程(最大线程数)是否已经满了(全都在执行任务)。

    1. 如果不是:看线程数是否到达指定的最大线程池的大小

      1. 如果不是:则创建一个新的线程来执行任务。
      2. 如果是:使用空闲的线程来执行任务
    2. 如果是:则交给饱和策略来处理这个任务。(饱和策略见:链接)

上边是文章的部分内容,为便于维护,全文已迁移到此网址:Java-线程池的原理(执行流程/状态转换) - 自学精灵

发表评论

表情:
评论列表 (有 0 条评论,72人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线执行原理

    线程池(ThreadPool)是一种基于池化技术的多线程管理机制,用于减少在创建和销毁线程上所花的开销和资源消耗。线程池中的线程可以循环利用,用于执行多个任务。