首页 > 代码库 > Thread Demo
Thread Demo
实现类
1 import org.springframework.core.task.TaskExecutor; 2 3 public class DemoBOImpl 4 { 5 // 线程池 6 @Resource(name = "taskExecutor") 7 private TaskExecutor taskExecutor; 8 9 @Override10 public void executeThread() throws Exception {11 // 线程池控制12 taskExecutor.execute(new DemoThread());13 }14 }
线程类
1 public class DemoThread implements Runnable 2 { 3 public DemoThread() { 4 } 5 6 @Override 7 public void run() { 8 try { 9 // do things10 } catch (Exception e) {11 }12 }13 }
Spring配置
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:aop="http://www.springframework.org/schema/aop" 6 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee" 7 xsi:schemaLocation=" http://www.springframework.org/schema/beans 8 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 9 http://www.springframework.org/schema/aop10 http://www.springframework.org/schema/aop/spring-aop-2.5.xsd11 http://www.springframework.org/schema/tx12 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd13 http://www.springframework.org/schema/context14 http://www.springframework.org/schema/context/spring-context-2.5.xsd15 http://www.springframework.org/schema/jee16 http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">17 18 <context:annotation-config />19 20 <!-- Spring线程池配置开始 -->21 <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 22 <!-- 核心线程数,默认为1 --> 23 <property name="corePoolSize" value="1" /> 24 <!-- 最大线程数,默认为Integer.MAX_VALUE --> 25 <property name="maxPoolSize" value="1" /> 26 <!-- 队列最大长度,默认为Integer.MAX_VALUE --> 27 <property name="queueCapacity" value="1" /> 28 <!-- 线程池维护线程所允许的空闲时间,默认为60s --> 29 <property name="keepAliveSeconds" value="60" /> 30 <!-- 线程池对拒绝任务(无线程可用)的处理策略,目前只支持AbortPolicy、CallerRunsPolicy;默认为后者 --> 31 <property name="rejectedExecutionHandler"> 32 <!-- AbortPolicy:直接抛出java.util.concurrent.RejectedExecutionException异常 --> 33 <!-- CallerRunsPolicy:主线程直接执行该任务,执行完之后尝试添加下一个任务到线程池中,可以有效降低向线程池内添加任务的速度 --> 34 <!-- DiscardOldestPolicy:抛弃旧的任务、暂不支持;会导致被丢弃的任务无法再次被执行 --> 35 <!-- DiscardPolicy:抛弃当前任务、暂不支持;会导致被丢弃的任务无法再次被执行 --> 36 <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" /> 37 </property> 38 </bean>39 <!-- Spring线程池配置结束 -->40 </beans>
Thread Demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。