首页 > 其他分享 >线程池的执行流程是什么?(核心参数、执行流程、拒绝策略)

线程池的执行流程是什么?(核心参数、执行流程、拒绝策略)

时间:2024-09-19 11:50:52浏览次数:3  
标签:策略 核心 流程 存活 任务 线程 执行 空闲

一、线程池的执行流程

1. 首先,向线程池提交一个线程任务,线程池会分配空闲线程去处理该线程任务。

2. 如果没有空闲线程就判断当前存活线程数是否超过核心线程数

        (1)没有超过就创建一个核心线程,处理线程任务。

        (2)超过核心线程数就将存活线程存放在工作队列中。

3. 如果工作队列满了,就要判断当前存活线程数是否超过最大线程数

        (1)没超过就创建非核心线程去处理线程任务,用完回收。

        (2)超过最大线程数就直接执行拒绝策略

 

 二、线程池的核心参数

  • 核心线程数 : corePoolSize
  • 工作队列 : workQueue
  • 最大线程数 : maxinumPoolSize
  • 非核心线程线程空闲的存活时间及单位 :  keepAliveTime 和 unit
  • 线程工厂 : threadFactory
  • 拒绝策略 : handler

三、线程池的拒绝策略 

  • AbortPolicy : 丢弃任务,并抛出异常(RejectedExecutionException)
  • DiscardPolicy: 只丢弃任务,不抛出异常
  • DiscardOldestPolicy: 只丢弃最老(末尾)的任务,重新将当前任务提交给线程池处理
  • CallerRunsPolicy: 直接运行run()方法
  • 自定义决绝策略

标签:策略,核心,流程,存活,任务,线程,执行,空闲
From: https://blog.csdn.net/weixin_65978343/article/details/142351802

相关文章

  • 简化插件的添加和更新流程
    NocoBase是一个极易扩展的开源无代码开发平台。完全掌控,无限扩展,助力你的开发团队快速响应变化,显著降低成本,不必投入几年时间和数百万资金研发,只需要花几分钟部署NocoBase。NocoBase中文官网官方文档在线Demo为了提升插件管理的体验,我们近期对插件管理器模块进行了重要更......
  • 怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
    在使用ApacheDolphinScheduler调度执行复杂的HiveSQL时,HQL包含多种海豚无法正确识别的符号,怎么办?本文提供了可行的思路和方法,供用户参考。一、目的在Hive中完成复杂JSON,既有对象还有数组而且数组中包含数组的解析后,原本以为没啥问题了,结果在DolphinScheduler中调度又出现了大问......
  • 怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
    在使用ApacheDolphinScheduler调度执行复杂的HiveSQL时,HQL包含多种海豚无法正确识别的符号,怎么办?本文提供了可行的思路和方法,供用户参考。一、目的在Hive中完成复杂JSON,既有对象还有数组而且数组中包含数组的解析后,原本以为没啥问题了,结果在DolphinScheduler中调度又出现了大问......
  • 纷享销客“子流程”创新——企业流程管理的革新之选
    Jack是一家电子商务企业的销售经理,近期他的公司订单量激增,但随之而来的退货流程却成了一个棘手的问题。每天,成百上千的退货请求涌向客服部门,而退货流程的每一步:从接收退货申请、物流派单、商品检验入库,到最终的财务退款,都至关重要,却也复杂繁琐。任何一步的延误都可能影响到客户满......
  • springboot中如何使用线程池
    springboot中如何使用线程池在SpringBoot中使用线程池,你可以定义一个ThreadPoolTaskExecutor的Bean,然后在需要的地方使用@Autowired注入这个Bean。以下是一个配置线程池的例子:importorg.springframework.context.annotation.Bean;importorg.springframew......
  • 全面解读大模型备案流程及重点、难点解析【附教程】
    本文详解大模型备案流程,旨在指引企业和开发者顺利完成备案,确保企业成功拿到大模型备案号。一、政策要求做大模型备案大模型备案是中国国家互联网信息办公室为加强生成式人工智能服务的管理,确保用户权益得到充分保护,以及保障国家安全和社会秩序稳定而实施的一项关键性政策。......
  • 火语言RPA流程组件介绍--设置元素属性值
    ......
  • 《深入理解 Java 线程池:高效管理线程的利器》
    线程池1.什么是线程池?​线程池内部维护了若干个线程,没有任务的时候,这些线程都处于等待空闲状态。如果有新的线程任务,就分配一个空闲线程执行。如果所有线程都处于忙碌状态,线程池会创建一个新线程进行处理或者放入队列(工作队列)中等待。2.线程池常用类和接口​在Java标......
  • MySQL 子查询全解析:执行、性能影响与优化策略
    在MySQL数据库的操作中,子查询是一个强大而又复杂的工具。今天,我们就来深入探讨MySQL如何执行子查询、其性能影响、优化方法以及哪些情况下应避免使用子查询。一、MySQL如何执行子查询非相关子查询非相关子查询也被称为独立子查询,它可以独立于外部查询进行执行。MyS......
  • 学习高校课程-软件工程-软件流程(ch3)
    3.1AGENERICPROCESSMODEL通用过程模型线性流和迭代流演化流和并行流3.2DEFININGAFRAMEWORKACTIVITY定义框架活动Whatactionsareappropriateforaframeworkactivity,giventhenatureoftheproblemtobesolved,thecharacteristicsofthepeopledoin......