文章标题
来源:互联网 发布:淘宝客和京东客哪个好 编辑:程序博客网 时间:2024/06/08 09:26
Spring+mybatis的线程池具体用法
web工程中非常的简单的。
一、xml配置
applicationContext-threadpool.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.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 异步线程池 --> <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 核心线程数 --> <property name="corePoolSize" value="10" /> <!-- 最大线程数 --> <property name="maxPoolSize" value="20" /> <!-- 队列最大长度 >=mainExecutor.maxSize --> <property name="queueCapacity" value="30" /> <!-- 线程池维护线程所允许的空闲时间 --> <property name="keepAliveSeconds" value="300" /> <!-- 线程池对拒绝任务(无线程可用)的处理策略 --> <property name="rejectedExecutionHandler"> <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" /> </property> </bean> </beans>
web.xml配置
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/spring/applicationContext-*.xml </param-value> </context-param>
二、使用方法
ServiceImpl代码:
@Servicepublic class SpringThreadPoolServiceImpl implements SpringThreadPoolService { @Resource(name = "taskExecutor") private TaskExecutor taskExecutor; @Autowired private IService service; @Override public void process(Version a) { // 使用多线程处理 taskExecutor.execute(new Runnable() { @Override public void run() { service.insert(a); System.out.println("[Thread " + Thread.currentThread().getId() + " start]\t"+Thread.currentThread().getName()+"\t处理结果"+j); } }); }}
Controller代码:
@RequestMapping(value = "/insert", method = { RequestMethod.POST, RequestMethod.GET }, produces = "text/html;charset=UTF-8") public @ResponseBody String SpringThreadPoolInsert(Version version) throws Exception { System.out.println("开始啦"); List<Version> insertList = produceList(version);//产生若干的Version System.out.println(insertList.size()); for(version aaa:insertList){ springThreadPoolService.process(aaa); } return "结束了"; }
然后启动web工程
用浏览器访问insert接口即可看见飞一般的速度。
请测可用!
1 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- Win7 计算器
- ViewFactory
- 从用户感知谈软件性能测试
- 树莓派的gpio的使用《树莓派小用3》
- 放假了
- 文章标题
- 面向对象设计的SOLID原则
- xv6源码分析(三):锁
- Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串
- 加拿大学校申请条件,雅思带你一窥究竟
- Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
- Excel_常规表操作总结_亲自跑过程序可用
- 共同父域下的单点登录SSO
- HTML中的table和div