线程池扩容和拒绝策略(CallerRunsPolicy)验证

news2024/11/19 15:20:47

结论:

1、线程池队列容量满了后,迅速扩容至maxPoolSize

2、队列满后,再进来任务,则主线程执行任务

3、任务执行完后,等待(keepAliveSeconds),主线程数然后恢复至corePoolSize

1、线程池初始化代码

    @Bean
    public ThreadPoolTaskExecutor getCareRightsExecutor() {
        final ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(10);
        executor.setMaxPoolSize(40);
        executor.setKeepAliveSeconds(60);
        executor.setThreadNamePrefix("care-right-");
        executor.setQueueCapacity(965);
        // 等待所有任务结果候再关闭线程池
        executor.setWaitForTasksToCompleteOnShutdown(true);
        executor.setAwaitTerminationSeconds(60);
        // 定义拒绝策略
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        // 初始化线程池, 初始化 core 线程
        executor.initialize();
        return executor;
    }

2、测试代码

    @Resource
    private ThreadPoolTaskExecutor getCareRightsExecutor;

    @Test
    void testThread() throws InterruptedException {
        final Logger logP = LoggerFactory.getLogger(this.getClass());
        for (int i = 0; i < 10000; i++) {
            getCareRightsExecutor.execute(() -> {
                try {
                    logP.info("队列长度:" + getCareRightsExecutor.getQueueSize());
                    Thread.sleep(RandomUtil.randomLong(1100, 2000));
                } catch (final InterruptedException e) {
                    throw new RuntimeException(e);
                }

            });
        }

        //Thread.sleep(100000000);

    }

打印日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1105621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【音视频|ALSA】基于alsa-lib开发ALSA应用层程序--附带源码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

【前端学习】—let const var之间的区别(十三)

【前端学习】—let const var之间的区别&#xff08;十三&#xff09; 一、let const var之间的区别 二、代码演示 <script>// 1、const let不存在变量提升 var 存在变量提升//var console.log(fullName,fullName);//fullName undefined //var fullNamecai; /* var 声明…

YOLO目标检测——肺结节数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;肺结节检测数据集主要应用于医学影像分析领域&#xff0c;特别是在肺结节检测和恶性风险评估方面。数据集说明&#xff1a;YOLO目标检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富。使用lableimg标注软件标注&#xff0c;标…

浅谈智能操控及无线测温产品在马来西亚理文造纸雪邦热电站项目中的应用

摘要&#xff1a;为避免因电线接头松动、电缆老化等引发高温造成火灾&#xff0c;所造成的的经济损失巨大&#xff0c;在一些电气设备如大电流电缆设备节点、电力设备局部异常升温部位、开关柜的动静触头&#xff0c;进线与出线母排接点、整流柜中的电气接点、变压器节点、变电…

win11 电脑 使用 python 连接USB 海康工业相机 运行示例程序 BasicDemo.py

win11 电脑 使用 python 连接USB 海康工业相机 运行示例程序 BasicDemo.py 1.下载海康的mvs客户端和mvs_sdk驱动 官网链接&#xff1a; https://www.hikrobotics.com/cn/machinevision/service/download?module0 下载这两个东西&#xff0c;然后安装 1.1 我的mvs安装在 F:\…

PHPstorm设置自定义代码自动提示,实现HTML页面的模版标签的提示

for {foreach $VAR0$ as $key>$vo } {/foreach}if {if $VAR0$$b }{else /}{/if}ifel {if $VAR0$$b}{elseif $a$b /}{else /}{/if}

不规则的文字环绕

不规则的文字环绕 我们将展示如何使用 CSS 的 shape-outside 和 clip-path 属性来实现不规则的文字环绕效果。 HTML 结构 首先&#xff0c;我们需要一个容器&#xff0c;其中包含一张图片和一段文字&#xff1a; <div class"container"><img src"i…

【算法tips】面试官:说说常见的排序算法。—— 巧记十种排序算法名称

做人呢最重要就是开心 面试时要放松、自信、从容&#xff0c; capybara教你巧记十种排序算法名称&#xff0c; 串联记忆&#xff0c;牢记不忘&#xff0c;快速忆起&#xff0c;从容回答。 十大经典排序算法 1.冒泡排序&#xff08;Bubble Sort&#xff09; 2.选择排序&…

Vue 模板字符串碰到script无法识别,报错Parsing error: Unterminated template.

需求&#xff1a; 将js代码完整的显示在界面上&#xff0c;包括标签 代码如下&#xff1a; 报错信息如下&#xff1a; 我们在上图中可以看到模板字符串加入了script标签后会报错 原因&#xff1a;运行JS的时候由上至下&#xff0c;先识别模板字符串里面的script标签&#xf…

svn 版本回退 并更新到最新

1.目前情况 (1)个人开发使用svn管理版本,没有分支只有主干. (2)最新版是89,想要完全回退到86,忽略所有86-89之间的变化 (3)直接回退后,提交的时候会提示更新(更新后又更新到最新版本了) (4)网上的教程测试都有问题(可能遇到的需求不一样) (5)工具为windows svn小乌龟 2.回…

Vue基础语法核心指令过滤器计算属性监听属性

目录 1. 模板语法 1.1 插值 1.1.1 文本 1.1.2 html 1.1.3 属性 1.1.4 表达式 1.2 指令 1.2.1 核心指令 1.2.1.1 v-if |v-else-if|v-else 1.2.1.2 v-show 1.2.1.3 v-for 1.2.1.4 v-on|v-model|v-for 1.2.1.5 参数 v-bind:href,v-on:click 1.2.1.6 简写 2. 过滤器…

优思学院|ISO9001管理体系从何而来?97%的专家不知道

ISO9001是当前全球最受欢迎的质量管理系统&#xff0c;特别是踏入21世纪以后&#xff0c;采用这套系统的政府部门、公营机构和企业数量都可谓几何级数上升。 截至2020年&#xff0c;ISO组织已向全球170个国家发出合共916842张ISO9001证书。 探源ISO9001的根源 那么&#xff…

代码随想录第45天 | ● 392.判断子序列 ● 115.不同的子序列

392.判断子序列 let ns.lengthlet a0if(n0)return true for(let i0;i<t.length;i){if(s[a]t[i])aif(an)return true}return false// s、t的长度const [m, n] [s.length, t.length];// dp全初始化为0const dp new Array(m 1).fill(0).map(x > new Array(n 1).fill(0))…

SpringBoot SSMP项目搭建保姆级教程

一、SpringBoot项目创建 Idea中创建New Project&#xff0c;选择Spring Initializr&#xff0c;输入Name、Location、JDK等&#xff0c;下一步。 选择合适的 SpringBoot 版本&#xff0c;点击创建。 此时&#xff0c;SpringBoot基础项目已经创建完毕。 二、Entity 开发 引入…

【AIFEM案例教程】压力容器热固耦合分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件&#xff0c;助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题&#xff0c;软件提供高效的前后处理工具和高精度的有限元求解器&#xff0c;帮助用户快速、深入地评估结构的力学性能&#xff0c;加速产…

天锐绿盾公司终端文件数据、资料防泄密系统——自动智能透明加密保护核心数据防止外泄软件

天锐绿盾公司终端文件数据防泄密系统采用高强度加密算法&#xff0c;对各种类型的文件进行实时、强制、透明的加解密。 该系统具有以下特点&#xff1a; 稳定性高&#xff1a;天锐绿盾文档透明加密安全系统是酷卫士电子文档安全管理平台的一个重要功能模块&#xff0c;性能稳定…

如何快速批量修改多个视频的MD5值?

在日常工作和生活中&#xff0c;我们经常需要处理大量的视频文件。有时候&#xff0c;我们需要修改这些视频文件的MD5值来满足某些需求。手动修改每个视频的MD5值是一项繁琐且容易出错的任务。幸运的是&#xff0c;有一种方法可以快速批量修改多个视频的MD5值&#xff0c;以下是…

[MySQL]BLOB/TEXT column ‘xxx‘ used in key specification without a key length

报错信息&#xff1a; SQLSTATE[42000]: Syntax error or access violation: 1170 BLOB/TEXT column xxx used in key specification without a key length 原因&#xff1a; MySQL的唯一索引不支持text类型的字段&#xff01;

Vue3开始

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff09; 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年…

网站防护的多种方案,如何让网站坚不可破

越权问题 问题叙述&#xff1a;存在权限管理不当的问题&#xff0c;导致用户可以越权访问资源。 改动提议&#xff1a;强化用户权限认证机制。 留意&#xff1a;通常&#xff0c;这种问题涉及到不同权限用户之间的资源访问&#xff0c;如浏览历史、cookie&#xff0c;以及标识…