Spring线程池的5个要素

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "/spring-beans.dtd">

<beans>

<!-- 异步线程池 -->  

<bean id="threadPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">  

<!-- 核心线程数  -->  

<property name="corePoolSize" value="10" />  

<!-- 最大线程数 -->  

<property name="maxPoolSize" value="50" />  

<!-- 队列最大长度 >=mainExecutor.maxSize -->  

<property name="queueCapacity" value="1000" />  

<!-- 线程池维护线程所允许的空闲时间 -->  

<property name="keepAliveSeconds" value="300" />  

<!-- 线程池对拒绝任务(无线程可用)的处理策略 -->  

<property name="rejectedExecutionHandler">  

<bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />  

</property>  

</bean>

<bean id="mainExecutor" class="supben.MainExecutor">

<property name="threadPool" ref="threadPool" />

</bean>

<bean id="springScheduleExecutorTask" class="org.springframework.scheduling.concurrent.ScheduledExecutorTask">

<property name="runnable" ref="mainExecutor" />

<!-- 容器加载10秒后开始执行 -->

<property name="delay" value="10000" />

<!-- 每次任务间隔 5秒-->

<property name="period" value="5000" />

</bean>

<bean id="springScheduledExecutorFactoryBean" class="org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean">

<property name="scheduledExecutorTasks">

<list>

<ref bean="springScheduleExecutorTask" />

</list>

</property>

</bean>

</beans>

原文地址:https://www.cnblogs.com/shoshana-kong/p/8976022.html

时间: 2024-10-11 06:35:50

Spring线程池的5个要素的相关文章

Spring线程池开发实战

Spring线程池开发实战 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然,所以并未做过多的解释.诸位一看便知. 前提条件: 1)在Eclipse创建一个Java项目,我取名为SpringThreadDemo.2)项目所需的JAR包如图所示:  下面开始. 注:项目源码已经托管到GitHub,地址:https://github.com/chszs/SpringThreadD

Spring线程池开发实战及使用spring注解

本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然,所以并未做过多的解释.诸位一看便知. 前提条件: 1)在Eclipse创建一个Java项目,我取名为SpringThreadDemo.2)项目所需的JAR包如图所示:  下面开始. 注:项目源码已经托管到GitHub,地址:https://github.com/chszs/SpringThreadDemo 例子1:Spring结合Java线程. 通过继承Thread创建一个简单的Java线程,然后使用@Component让S

spring线程池配置

源自:http://zjriso.iteye.com/blog/771706 1.了解 TaskExecutor接口 Spring的TaskExecutor接口等同于java.util.concurrent.Executor接口. 实际上,它存在的主要原因是为了在使用线程池的时候,将对Java 5的依赖抽象出来. 这个接口只有一个方法execute(Runnable task),它根据线程池的语义和配置,来接受一个执行任务.最初创建TaskExecutor是为了在需要时给其他Spring组件提供

spring线程池ThreadPoolTaskExecutor与阻塞队列BlockingQueue

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

java和spring 线程池总结

1. spring 的线程池 ThreadPoolTaskExecutor @Configuration public class ThreadPoolConfig { @Bean("threadPoolTaskExecutor") public ThreadPoolTaskExecutor threadPoolTaskExecutor(){ ThreadPoolTaskExecutor threadPoolTaskExecutor=new ThreadPoolTaskExecutor

spring 线程池 的一个坑。

问题简述: 配置的队列初始化的消费者线程占满了线程池.导致其他的再使用此线程池中线程不运行.不报错,不抛异常.线程的数量仅为为线程池的配置中的最小值. <task:executor pool-size="100-150" queue-capacity="250" > 同时schema描述中写道: The size of the executor's thread pool as either a single value or a range    (e

spring 线程池执行器DefaultManagedTaskScheduler之jndi

package com.example.spring.async.config; import java.util.concurrent.Executors; import javax.naming.NamingException; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springf

Spring线程池ThreadPoolTaskExecutor

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

关于spring线程池ThreadPoolTaskExecutor的作用

关于spring的ThreadPoolTaskExecutor: 他的一个应用场景就是调第三方的接口的时候,有可能第三方响应非常缓慢,这个时候最好的办法就是能有个最大的等待时间,不然自己的程序会一直卡死,阻塞,最好的办法就是使用 ThreadPoolTaskExecutor.excute(new Runable(){ })调用线程的方法来执行与第三方接口的交互 <bean id="syncTaskExecutor" class="org.springframework.