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 ...
随机推荐
- Java精通并发-锁升级与偏向锁深入解析
对于synchronized关键字,我们在实际使用时可能经常听说用它是一个非常重的操作,其实这个“重”是要针对JDK的版本来说的,如今JDK已经到了12版本了,其实对这个关键字一直是存在偏见的,它底层 ...
- 《奋斗吧!菜鸟》 第九次作业:Beta冲刺 Scrum meeting 3
项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11012922.html 团队名称 奋斗吧!菜鸟 作业学习目标 掌 ...
- Laravel —— 自定义登录
Laravel 中自带了 Auth 模块 默认用 email 登录,并有固定的表字段 有时需要根据项目需求,修改 Auth 功能 1.生成 Auth 执行 php artisan make:auth ...
- java设计模式解析(11) Chain责任链模式
设计模式系列文章 java设计模式解析(1) Observer观察者模式 java设计模式解析(2) Proxy代理模式 java设计模式解析(3) Factory工厂模式 java设计模式解析(4) ...
- 导入Excel数据到Oracle数据库的脚本
在cmd运行窗口中输入:sqlldr customermanager/123@orcl control="E:\CustomerData\excelInputOracle\insert.ct ...
- 网络 IP
参考原文 http://blog.csdn.net/dan15188387481/article/details/49873923 1. 原始的IP地址表示方法及其分类(近几年慢慢淘汰) IP ...
- vue中input输入第一个字符时,光标会消失,需要再次点击才能输入
vue中input输入第一个字符时,光标会消失,需要再次点击才能输入 在这里我犯了一个小错误,v-if语法比较倾向于一次性操作,当input获取焦点时,v-if判断为true,立即刷新数据,进行渲染, ...
- scanf()函数的调用:编写求正方形面积的通用程序
#include<stdio.h>void main(){ int a, area; scanf("%d",&a); //等待用户从键盘输入一个整数// are ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)
这种情况一般是mysql被杀掉了. 要重新启动. ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了
- 【转】SignalR与ActiveMQ结合构建实时通信
一.概述 本教程主要阐释了如何利用SignalR与消息队列的结合,实现不同客户端的交互 SignalR如何和消息队列交互(暂使用ActiveMQ消息队列) SignalR寄宿在web中和其他Signa ...