1 package com.liuhuan.study.config;
2
3 import com.google.common.util.concurrent.ThreadFactoryBuilder;
4 import org.springframework.context.annotation.Bean;
5 import org.springframework.context.annotation.Configuration;
6
7 import java.util.concurrent.*;
8
9 /**
10 * @author LiuHuan
11 * @date 2019-10-08 15:42
12 * @desc 线程池
13 */
14 @Configuration
15 public class ThreadPoolConfig {
16
17 /**
18 * 线程池维护线程的最少数量
19 */
20 private static final int CORE_POOL_SIZE = Runtime.getRuntime().availableProcessors();
21
22 /**
23 * 线程池维护线程的最大数量
24 */
25 private static final int MAX_POOL_SIZE = 20;
26
27 /**
28 * 空闲线程等待工作的超时时间
29 */
30 private static final long KEEP_ALIVE_TIME = 1000L;
31
32 /**
33 * 线程池所使用的缓冲队列大小
34 */
35 private final static int WORK_QUEUE_SIZE = 10;
36
37
38
39 /**
40 * 消息队列线程池
41 */
42 @Bean(value = "processThreadPool")
43 public ExecutorService processThreadPool(){
44 ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
45 .setNameFormat("process-thread-%d").build();
46
47 ExecutorService pool = new ThreadPoolExecutor(CORE_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME, TimeUnit.MILLISECONDS,
48 new ArrayBlockingQueue<Runnable>(WORK_QUEUE_SIZE), namedThreadFactory, new ThreadPoolExecutor.DiscardOldestPolicy());
49 return pool ;
50 }
51
52 }

SpringBoot普通消息队列线程池配置的更多相关文章

  1. 玩转SpringBoot之定时任务@Scheduled线程池配置

    序言 对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了. 但是, ...

  2. SpringBoot 线程池配置 实现AsyncConfigurer接口方法

      目的是:  通过实现AsyncConfigurer自定义线程池,包含异常处理  实现AsyncConfigurer接口对异常线程池更加细粒度的控制 *a) 创建线程自己的线程池  b) 对void ...

  3. Spring线程池配置模板设计(基于Springboot)

    目录 线程池配置模板 基础的注解解释 常用配置参数 配置类设计 线程池使用 ThreadPoolTaskExecutor源码 线程池配置模板 springboot给我们提供了一个线程池的实现,它的底层 ...

  4. SpringBoot异步及线程池配置

    异步方法注解@Async 在SpringBoot中进行异步处理,可以使用异步注解@Async和@EnableAsync. @Async注解表示异步,如:@Async("asyncServic ...

  5. FeignClient spi 调用 短路异常 & 线程池配置

    FeignClient spi 调用 短路异常 & 线程池配置 默认配置见:HystrixThreadPoolProperties 线程池对象:com.netflix.hystrix.Hyst ...

  6. Java队列——线程池创建的例子

    线程池为线程生命周期开销问题和资源不足问题提供了解决方案.通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上.其好处是,因为在请求到达时线程已经存在,所以无意中也消除了线程创建所带来的延迟.这 ...

  7. 【Java 并发】Executor框架机制与线程池配置使用

    [Java 并发]Executor框架机制与线程池配置使用 一,Executor框架Executor框架便是Java 5中引入的,其内部使用了线程池机制,在java.util.cocurrent 包下 ...

  8. Hystrix线程池配置

    Hystrix配置文件配置 断路器: hystrix.command.default.circuitBreaker.requestVolumeThreshold(当在配置时间窗口内达到此数量的失败后, ...

  9. TestNg线程池配置、执行次数配置、超时配置

    使用注解的方式对TestNg线程池配置.执行次数配置.超时配置 注:使用注解来控制测试方法运行的次数和超时时间,timeOut在单线程或者多线程模式下都可用,threadPoolSize设置了线程池的 ...

随机推荐

  1. Finding the Right EAV Attribute Table

    $customer = Mage::getModel('catalog/product'); $entity = $customer->getResource(); $attribute = M ...

  2. 要点4:C的文件操作

    关于文件操作个人比较困惑的地方有两点: 关于w和wb的区别 如何定位文件的读写位置 文件格式和打开模式 c中的文件打开模式分为:文本模式和二进制模式,分别处理文本格式文件和二进制格式文件. 两个模式的 ...

  3. lx

    自我介绍:我是18软件技术5班 张震. -统计截止目前为止我自己写过代码3000行,我希望在本课结束后累计到10000行代码, 选择自测题17分,错题大多是运算符和运算符先 后级一类的题,编程题不会, ...

  4. 第3篇scrum冲刺(5.23)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏  调用小程序接口获取用户微信登录权限,初始化  完成云开发配置,初始化数据库: 进度较慢,后面可能会有点困难 ...

  5. 浅析 MVC

    MVC(Model–View–Controller) Model:数据模型  负责操作所有数据View:视图 负责所有UI界面Controller:控制器 负责其他 //数据放在m const m = ...

  6. 使用VS开发的一个开机自启动启动、可接收指定数据关闭电脑或打开其他程序

    使用VS开发的一个开机自启动启动.可接收指定数据关闭电脑或打开其他程序需要注意的几点 为了能够在其他电脑上运行自己写的程序,需要在VS改一下编译的运行库.(项目->属性->配置属性-> ...

  7. C语言基础练习——打印菱形

    C语言基础练习--打印菱形 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 17:17 ...

  8. 力扣Leetcode 200. 岛屿数量

    岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量. 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成. 此外,你可以假设该网 ...

  9. rabbitmq用户权限

    none:无法登录控制台 不能访问 management plugin,通常就是普通的生产者和消费者. management:普通管理者. 仅可登陆管理控制台(启用management plugin的 ...

  10. 关于babel你需要知道的事情

    babel js转码器 ES6 ==> ES5 配置 .babelrc