Spring ThreadPoolTaskExecutor线程池

1:首先配置线程池(在spring配置文件中配置,我是在applicationContext.xml中配置的)

<!-- 异步线程池 -->
<bean id="taskExecutor"
      class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <!-- 核心线程数 -->
    <property name="corePoolSize" value="5" />
    <!-- 最大线程数 -->
    <property name="maxPoolSize" value="10" />
    <!-- 队列最大长度 >=mainExecutor.maxSize -->
    <property name="queueCapacity" value="100" />
    <!-- 线程池维护线程所允许的空闲时间 -->
    <property name="keepAliveSeconds" value="3000" />
    <!-- 线程池对拒绝任务(无线程可用)的处理策略 -->
    <property name="rejectedExecutionHandler">
        <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
    </property>
</bean>

2:就是注入taskExecutor并且使用

直接把线程丢到线程池中,线程池会控制何时启动它,会自动调用它的RUN方法

3:线程接口(ResponseQueueThread)

到此结束,哈哈,很简单,欢迎各种吐槽,有更好的还请推荐,thank you!谢谢

时间: 2024-10-25 13:27:17

Spring ThreadPoolTaskExecutor线程池的相关文章

spring定时任务.线程池,自定义多线程配置

定时任务及多线程配置xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springfra

spring 配置线程池

一,环境 spring mvc 4.3.10 二,spring配置文件 <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="4" /> <property name="ma

spring配置线程池

系统中有个定时器,针对每个用户定时生成报告.但是每个报告需要消耗3~5秒,所以在定时器里不能去处理,然后就想到线程池,在定时器里只需要启动线程就行了,所有业务全在另起的线程里进行. spring的配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi=&

字节跳动Java研发面试99题(含答案):JVM+Spring+MySQL+线程池+锁

JVM的内存结构 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 1. Java虚拟机栈:线程私有:每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态连接,方法返回地址等:每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈. 2. 堆:线程共享:被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例. 3. 方法区:线程共享:被所有线程共享的一块内存区域:用于存储已被虚拟机加载的类信息,常量,静态变量等. 4

spring线程池ThreadPoolTaskExecutor与阻塞队列BlockingQueue

一: ThreadPoolTaskExecutor是一个spring的线程池技术,查看代码可以看到这样一个字段: private ThreadPoolExecutor threadPoolExecutor; 可以发现,spring的  ThreadPoolTaskExecutor是使用的jdk中的java.util.concurrent.ThreadPoolExecutor进行实现, 直接看代码: @Override protected ExecutorService initializeExe

Spring中的线程池ThreadPoolTaskExecutor

1.直接调用Spring框架中的ThreadPoolTaskExecutor ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); //线程池所使用的缓冲队列 poolTaskExecutor.setQueueCapacity(200); //线程池维护线程的最少数量 poolTaskExecutor.setCorePoolSize(5); //线程池维护线程的最大数量 poolTaskExecutor.s

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程. 一.ThreadPoolTaskExecutor 本文采用 Executors 的工厂方法进行配置. 1.将线程池用到的参数定义到配置文件中 在项目的 resources 目录下创建 executor.properties 文件,并添加如下配置: # 异步线程配置 # 核心线程数 async.executor.thread.core_pool_si

Spring线程池ThreadPoolTaskExecutor

一. ThreadPoolTaskExecutor 配置 <bean id ="taskExecutor"  class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >     <!-- 线程池维护线程的最少数量 -->     <property name ="corePoolSize" value ="5"

spring提供的线程池

SPRING中的线程池ThreadPoolTaskExecutor 分类: JAVA Spring2013-07-12 10:36 14896人阅读 评论(9) 收藏 举报 Spring线程池多线程 一.初始化 1,直接调用 [java] view plaincopyprint? ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); //线程池所使用的缓冲队列 poolTaskExecutor.setQue