spring线程池的应用
加载xml文件
- xmlns:task="http://www.springframework.org/schema/task"
xmlns:task="http://www.springframework.org/schema/task"
xmlns文件并且xsi:schemaLocation中添加
- http://www.springframework.org/schema/task
http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task.xsd
http://www.springframework.org/schema/task/spring-task.xsd
在spring中配置Executor
- <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
- <!-- 核心线程数 -->
- <property name="corePoolSize" value="${task.core_pool_size}" />
- <!-- 最大线程数 -->
- <property name="maxPoolSize" value="${task.max_pool_size}" />
- <!-- 队列最大长度 -->
- <property name="queueCapacity" value="${task.queue_capacity}" />
- <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
- <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />
- </bean>
- <!-- 注解式 -->
- <task:annotation-driven />
- <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
- <!-- 核心线程数 -->
- <property name="corePoolSize" value="${task.core_pool_size}" />
- <!-- 最大线程数 -->
- <property name="maxPoolSize" value="${task.max_pool_size}" />
- <!-- 队列最大长度 -->
- <property name="queueCapacity" value="${task.queue_capacity}" />
- <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
- <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />
- </bean>
- <!-- 注解式 -->
- <task:annotation-driven />
在dbconfig.properties添加
- maxOpenPreparedStatements=20
- removeAbandoned=true
- removeAbandonedTimeout=1800
- logAbandoned=true
- maxOpenPreparedStatements=20
- removeAbandoned=true
- removeAbandonedTimeout=1800
- logAbandoned=true
这是分别对线程池做配置
添加依赖注入
- @Resource(name = "taskExecutor")
- private TaskExecutor taskExecutor;
- @Resource(name = "taskExecutor")
- private TaskExecutor taskExecutor;
使用线程池进行并发操作
- taskExecutor.execute(new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- try {
- //要进行的并发操作
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- taskExecutor.execute(new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- try {
- //要进行的并发操作
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
提示
- @Controller
- public class IndexController {
- int studentscount = 0;
- @RequestMapping(value = "/index.html")
- public ModelAndView goIndex() {
- logBefore(logger, "列表Center");
- ModelAndView mv = this.getModelAndView();
- taskExecutor.execute(new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- // 得到所有学生人数
- try {
- studentscount = coursesService.getStudentCount(pd);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- mv.addObject("studentscount", studentscount);
- mv.setViewName("common/index");
- return mv;
- }
- @Controller
- public class IndexController {
- int studentscount = 0;
- @RequestMapping(value = "/index.html")
- public ModelAndView goIndex() {
- logBefore(logger, "列表Center");
- ModelAndView mv = this.getModelAndView();
- taskExecutor.execute(new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- // 得到所有学生人数
- try {
- studentscount = coursesService.getStudentCount(pd);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- });
- mv.addObject("studentscount", studentscount);
- mv.setViewName("common/index");
- return mv;
spring线程池的应用的更多相关文章
- Spring线程池开发实战
Spring线程池开发实战 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然, ...
- Spring线程池配置模板设计(基于Springboot)
目录 线程池配置模板 基础的注解解释 常用配置参数 配置类设计 线程池使用 ThreadPoolTaskExecutor源码 线程池配置模板 springboot给我们提供了一个线程池的实现,它的底层 ...
- Spring线程池ThreadPoolTaskExecutor配置及详情
Spring线程池ThreadPoolTaskExecutor配置及详情 1. ThreadPoolTaskExecutor配置 <!-- spring thread pool executor ...
- 分享知识-快乐自己:Spring线程池配置
Spring通过ThreadPoolTaskExecutor实现线程池技术,它是使用jdk中的Java.util.concurrent.ThreadPoolExecutor进行实现. Spring 配 ...
- Spring线程池由浅入深的3个示例
作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然,所以并未做过多的解释.诸位一看便知. 前提条件: 1)在Ec ...
- 【SSM Spring 线程池 OJ】 使用Spring线程池ThreadPoolTaskExecutor
最近做的Online Judge项目,在本地判题的实现过程中,遇到了一些问题,包括多线程,http通信等等.现在完整记录如下: OJ有一个业务是: 用户在前端敲好代码,按下提交按钮发送一个判题请求给后 ...
- spring线程池的同步和异步(1)
spring线程池(同步.异步) 一.spring异步线程池类图 二.简单介绍 2.1. TaskExecutor---Spring异步线程池的接口类,其实质是java.util.concurrent ...
- 007-多线程-JUC线程池-Spring线程池配置、池子如何配置参数
一.概述 Spring通过ThreadPoolTaskExecutor实现线程池技术,它是使用jdk中的Java.util.concurrent.ThreadPoolExecutor进行实现. 1.1 ...
- JDK线程池和Spring线程池的使用
JDK线程池和Spring线程池实例,异步调用,可以直接使用 (1)JDK线程池的使用,此处采用单例的方式提供,见示例: public class ThreadPoolUtil { private s ...
- spring线程池配置
源自:http://zjriso.iteye.com/blog/771706 1.了解 TaskExecutor接口 Spring的TaskExecutor接口等同于java.util.concurr ...
随机推荐
- (五)react-native开发系列之Android原生交互
react-native可以做web与原生的交互,这是使用react-native开发项目的主要目的之一,也是主要优势,用rn而不用原生交互则毫无价值,这篇文章用来记录在项目中rn的原生交互使用过程. ...
- IP详解
现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0.地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址. IP地址类型 最初设计互联网络时,为了 ...
- 【转】java.io.Closeable接口
说到java.io.Closeable接口就避不开java.lang.AutoCloseable接口,因为在java版本7.0时引入了java.lang.AutoCloseable接口,同时java. ...
- WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法
[转] https://www.cnblogs.com/chrischeng/p/10237523.html 最近在做一个WebSocket项目,后台使用了Stomp协议的WebSocketConfi ...
- 云计算/云存储---Ceph和Openstack的cinder模块对接方法
1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...
- 《奋斗吧!菜鸟》 第九次作业:Beta冲刺 Scrum meeting 3
项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11012922.html 团队名称 奋斗吧!菜鸟 作业学习目标 掌 ...
- elementUI 控制 DatePicker组件 不能选择 设定的日期
<el-date-picker v-model="date" type="daterange" range-separator="至" ...
- 【贪心】Communication System POJ 1018
题目链接:http://poj.org/problem?id=1018 题目大意:有n种通讯设备,每种有mi个制造商,bi.pi分别是带宽和价格.在每种设备中选一个制造商让最小带宽B与总价格P的比值B ...
- HTML中的标签列表
1 :基础标签 <!DOCTYPE> :定义文档类型 <title>:定义文档标题 <h1>to<h2>定义HTML标题,其中h1到h6表示字体大小依次 ...
- Acwing P288 休息时间 题解
Analysis 首先假设一天的第N小时与后一天的第一个小时不相连, 这种情况下DP转移比较好想 dp[i][j][0/1]dp[i][j][0/1]表示 考虑一天的前i个小时,已经休息了j小时,且第 ...