码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringBoot项目中使用线程池


    SpringBoot项目中使用线程池

    在SpringBoot环境使用线程池并可配置

    1.Config配置类

    package com.atguigu.gulimall.product.config;
    
    import org.apache.tomcat.util.threads.ThreadPoolExecutor;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import java.util.concurrent.Executors;
    import java.util.concurrent.LinkedBlockingDeque;
    import java.util.concurrent.TimeUnit;
    
    /**
     *
     * 线程池配置
     * @author Hacah
     * @date 2022/12/2 22:01
     */
    @EnableConfigurationProperties(value = ThreadPoolConfigurationProperties.class)
    @Configuration
    public class ThreadPoolConfig {
    
        @Bean
        public ThreadPoolExecutor threadPool(ThreadPoolConfigurationProperties configurationProperties) {
        /**
             * 线程池配置的七大参数
             */
            return new ThreadPoolExecutor(configurationProperties.getCorePoolSize(), configurationProperties.getMaxPoolSize(),
                    configurationProperties.getKeepAliveTime(), TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>(100000),
                    Executors.defaultThreadFactory(), new java.util.concurrent.ThreadPoolExecutor.AbortPolicy());
        }
    
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    corePoolSize

    代表核心的线程大小。也就是正常保持的线程数,不会删除,除非设置了 allowCoreThreadTimeOut。

    maximumPoolSize

    线程池允许最大线程数(线程数量最多到 2 的 29 次方 -1)

    keepAliveTime

    超过核心线程部分的线程,空闲时最大的存活时间。最终线程池维持在 corePoolSize 大小

    unit

    上一个参数的单位

    workQueue

    用来存储执行的任务,可使用LinkedBlockingQueue。

    threadFactory

    线程创建的工厂。控制线程创建的规则参数线程名、组、优先级等,可以使用DefaultThreadFactory

    handler

    超过最大线程数后,线程满了。对线程的处理策略。可使用AbortPolicy,拒接任务并抛出异常。

    2.属性配置类

    package com.atguigu.gulimall.product.config;
    
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    /**
     * 线程池配置
     * @author Hacah
     * @date 2022/12/2 22:03
     */
    @Data
    @ConfigurationProperties(prefix = "hacah.thread")
    public class ThreadPoolConfigurationProperties {
        /**
         * 核心大小
         */
        private Integer corePoolSize;
        /**
         * 最大量
         */
        private Integer maxPoolSize;
        /**
         * 时间,毫秒
         */
        private Long keepAliveTime;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    之后就能在配置文件配置

    3.配置文件

    hacah:
      thread:
        core-pool-size: 10
        max-pool-size: 200
        keepAliveTime: 10000
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.使用

    Spring依赖注入方式

  • 相关阅读:
    Docker进阶——再次认识docker的概念 & Docker的结构 & Docker镜像结构 & 镜像的构建方式
    Apollo6.0安装文档教程——环境搭建、安装、编译、测试
    红队web打点信息收集
    Qt-qrc资源文件-rcc打包-程序调用-ZIP压缩和解压-安装程序制作参考
    公众号淘客返利系统,自动查券返利机器人赚佣金详细教程
    JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK9特性讲解】
    阿里云 Oss 权限控制
    软件测试 - 软件测试流程(完整版)避免当背锅侠,测试人的生存......
    中期国际2.19黄金市场分析:美国通胀数据火热,黄金面临高利率削弱的挑战
    Redis安装
  • 原文地址:https://blog.csdn.net/hwh295/article/details/128155601
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号