首页 > 其他分享 >创建线程池工具类

创建线程池工具类

时间:2024-06-08 17:29:16浏览次数:22  
标签:创建 util 线程 new import 工具 POOL SIZE

线程池具有以下属性:

核心线程数:CORE_POOL_SIZE

最大线程数:MAX_POOL_SIZE

线程保持活跃时间:KEEP_ALIVE_SECONDS

时间单位:TimeUnit.MILLISECONDS

任务队列:LinkedBlockingQueue,容量为QUEUE_CAPACITY

线程工厂:为每个新线程设置名称前缀"lwc-pool-"和一个自增的编号

拒绝策略:ThreadPoolExecutor.DiscardPolicy,即直接丢弃任务不做处理

这个线程池用于执行提交的Runnable任务。

 

package com.sdx.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

@Configuration
public class ThreadPoolConfig {

    /**
     * 核心线程池大小
     */
    private static final int CORE_POOL_SIZE = Runtime.getRuntime().availableProcessors();

    /**
     * 最大可创建的线程数
     */
    private static final int MAX_POOL_SIZE = Runtime.getRuntime().availableProcessors() * 2;

    /**
     * 队列最大长度
     */
    private static final int QUEUE_CAPACITY = 50000;

    /**
     * 线程池维护线程所允许的空闲时间
     */
    private static final int KEEP_ALIVE_SECONDS = 60;

    @Bean
    public ExecutorService executorService(){
        AtomicInteger c = new AtomicInteger(1);
        LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(QUEUE_CAPACITY);
        return new ThreadPoolExecutor(
                CORE_POOL_SIZE,
                MAX_POOL_SIZE,
                KEEP_ALIVE_SECONDS,
                TimeUnit.MILLISECONDS,
                queue,
                r -> new Thread(r, "lwc-pool-" + c.getAndIncrement()),
                new ThreadPoolExecutor.DiscardPolicy()
        );
    }
}

标签:创建,util,线程,new,import,工具,POOL,SIZE
From: https://blog.csdn.net/weixin_49423223/article/details/139548171

相关文章

  • 宝塔搭建javaweb_宝塔工具+javaweb+mysql+tomcat部署项目
    1.首先我们得有一个安装了宝塔工具的云服务器首先我们要在服务器安全组开放宝塔常用的端口,看你是什么服务器,然后对应下面官网的教程就行了。腾讯云:https://www.bt.cn/bbs/thread-1229-1-1.html阿里云:https://www.bt.cn/bbs/thread-2897-1-1.html华为云:https://www.bt.cn/bbs/t......
  • 宝塔搭建javaweb_宝塔工具+javaweb+mysql+tomcat部署项目
    1.首先我们得有一个安装了宝塔工具的云服务器首先我们要在服务器安全组开放宝塔常用的端口,看你是什么服务器,然后对应下面官网的教程就行了。腾讯云:https://www.bt.cn/bbs/thread-1229-1-1.html阿里云:https://www.bt.cn/bbs/thread-2897-1-1.html华为云:https://www.bt.cn/bbs/t......
  • 管式土壤墒情监测仪:引领农业与环境研究的革命性工具
    在农业科技日新月异的今天,管式土壤墒情监测仪凭借其独特的优势,已逐步成为农业和环境领域不可或缺的研究装备。这款监测仪,基于先进的介电常数原理,以其卓越的精确度和强大的功能,为研究人员提供了详尽而深入的土壤墒情数据,为探索土壤状况揭开了新篇章。  管式土壤墒情监测仪的核......
  • 2024 年最全的 21 款数据恢复工具软件汇总
    使用其中任何一款免费数据恢复工具,您都可以找回那些您认为已经永远消失的文件。我根据这些程序对我而言的易用性和它们提供的功能对这些程序进行了排名。这些应用程序从您的硬盘、USB驱动器、媒体卡等恢复文档、视频、图像、音乐等。我建议每个计算机所有者都安装其中一个程......
  • 人工智能智能体的五大能力等级:从工具到超人
    在人工智能(AI)的世界中,智能体的性能和能力可以被划分为不同的等级。这些等级从简单的工具到超越人类能力的超人智能体。本文将探讨AI智能体的五个能力等级,以及每个等级的关键技术、性能、能力和使用场景。等级0:无AI的基础工具在这个阶段,我们没有真正的AI,只有基础的工具。这......
  • 维护一个对象只能通过new来创建,且要实现对象能够自动销毁的单例代码实现及扩展。
    结论:析构函数设为私有且在单例类的内部维护一个Chelper类。(如果是单例,还要将构造函数设为私有,如果是可以在全局有多个实例但是希望只能提供new创建,则构造必须公有且必须提供成员函数来调用deletethis来调用该对象的析构函数)。具体细节可看代码解释部分。代码实现:test.hcla......
  • QGIS配准工具的变换算法(翻译自QGIS官方文档)
    QGIS配准工具的变换算法配准工具中有多种变换算法可用,具体取决于输入数据的类型和质量、您愿意在最终结果中引入的几何变形的性质和数量,以及地面控制点(GCP)的数量。目前,可以使用以下变换类型:线性算法用于创建坐标定位文件,与其他算法不同,它实际上不会变换栅格像素。它......
  • 计算机网络实验一:vlan的创建与划分
    这个是pkt文件有两道题所以我是两个文件https://pan.quark.cn/s/d4170897cb59https://pan.quark.cn/s/da48878c77f5发现复制不来图片把实验报告也放在夸克网盘大家自行下载https://pan.quark.cn/s/e4c63d315050有兴趣的可以一点一点跟着做没兴趣的自行下载提交(手动......
  • Spring家族框架——Spring3——IOC基于XML创建对象的方式
    ......
  • Unity 创建一个规范的Package
    为包命名[email protected](字母要小写,@后是包版本号)包的布局Packages├──package.json├──README.md├──CHANGELOG.md├──LICENSE.md├──ThirdPartyNotices.md├──Editor│├──Unity.[YourPackageName......