美文网首页
线程池核心参数及其使用流程

线程池核心参数及其使用流程

作者: Java_xiaoman | 来源:发表于2021-08-05 22:49 被阅读0次

1.如果此时线程数小于核心线程数,那么就会新起一个线程来执行当前的任务。
2.如果此时线程数大于核心线程数,那么就会将任务塞入阻塞队列中,等待被执行。
3.如果阻塞队列满了,并且此时线程数小于最大线程数,那么会创建新线程来执行当前任务。
4.如果阻塞队列满了,并且此时线程数大于最大线程数,那么会采取拒绝策略。
以上就是任务提交给线程池后各种状况汇总,一个很容易出现理解错误的地方就是当线程数达到核心数的时候,任务是先入队,而不是先创建最大线程数。

从上述可知,线程池里的线程不是一开始就直接拉满的,是根据任务量开始慢慢增多的,这就算一种懒加载,到用的时候再创建线程,节省资源。
此时线程数小于核心线程数,并且线程都处于空闲状态,现提交一个任务,是新起一个线程还是给之前创建的线程?
此时线程池会新起一个线程来执行这个新任务,不管老线程是否空闲。
你是如何理解核心线程的?
从上一个问题可以看出,线程池虽说默认是懒创建线程,但是它实际是想要快速拥有核心线程数的线程。核心线程指的是线程池承载日常任务的中坚力量,也就是说本质上线程池是需要这么些数量的线程来处理任务的,所以在懒中又急着创建它。

相关文章

  • 线程池核心参数及其使用流程

    1.如果此时线程数小于核心线程数,那么就会新起一个线程来执行当前的任务。2.如果此时线程数大于核心线程数,那么就会...

  • 大白话聊聊线程池的工作原理和核心参数

    目录 1、为啥要使用线程池 2、线程池的工作原理 3、线程池都用哪些核心参数 4. 有界队列下的线程池的工作流程 ...

  • JAVA线程池常见用法

    JAVA线程池常见用法及其原理 1.JAVA线程池常见用法: 2.核心参数讲解 corePoolSize: 核心线...

  • Android线程之线程池

    ThreadPoolExecutor(线程池) 构造方法 具体参数及其含义 int corePoolSize核心线...

  • 线程池概述

    为什么要使用线程池? 线程池核心参数 线程池的几种拒绝策略 execute()和submit()的区别 线程池工作...

  • J.U.C——线程池专题

    主要讨论以下问题: 认识Java线程池 线程池的种类,区别,和使用场景 线程池的工作流程 线程池几个参数的理解 分...

  • 为什么要使用线程池

    1.为什么要使用线程池 ThreadPoolExecutor参数 corePoolSize:核心池大小 maxim...

  • ThreadPool

    线程池核心参数 corePoolSize: int 核心线程数 线程池初始化后,线程池中没有任何线程,线程池会等待...

  • ThreadPoolExecutor线程池原理以及源码分析

    线程池流程: 线程池核心类:ThreadPoolExecutor:普通的线程池ScheduledThreadPoo...

  • 线程池-核心参数-03

    当我们使用 callable 接口实现线程时,常会和 juc 下面的线程池一起使用。这里主要看看 线程池的核心参数...

网友评论

      本文标题:线程池核心参数及其使用流程

      本文链接:https://www.haomeiwen.com/subject/nuivvltx.html