首页 > 代码库 > 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