Jdk1.4下线程池

 
Jdk1.4下线程池
       JSR 166 (java.util.concurrent)是jdk1.5的部分,它给我们的多线程开发带来很多方便。因为很多应用环境还是在jdk1.4下,目前还无法升级到jkd1.5,如我们的项目很多是在weblogic8.1上运行。想在jdk1.4下享受JSR 166的好处,可以使用backport-util-concurrent,下载地址为: http://backport-jsr166.sourceforge.net/index.php
       backport-util-concurrent的api和jdk1.5的 java.util.concurrent基本一致吧,可以参照jdk1.5的中文doc,去做。
       通常项目中都使用spring,可以把连接池配到spring里,当成一个服务使用。(因为使用的spring版本比较低1.2.8),
1.         在spring中配置连接池
 <!-- BlockingQueue -->
 <bean id="blockingQueue" class="edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue">
    <constructor-arg><value>2000</value></constructor-arg>
 </bean>
 <bean id="timeUnit" class="edu.emory.mathcs.backport.java.util.concurrent.TimeUnit" factory-method="valueOf">
    <constructor-arg><value>SECONDS</value></constructor-arg>
 </bean>
 <!-- work thread pool -->
 <bean id=" executorService" class="edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor" destroy-method="shutdown">
    <!--池中所保存的线程数,包括空闲线程 -->
    <constructor-arg><value>10</value></constructor-arg>
    <!-- 池中允许的最大线程数 -->
    <constructor-arg><value>200</value></constructor-arg>
    <!-- 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间 -->
    <constructor-arg><value>60</value></constructor-arg>
    <!-- 参数的时间单位 -->
    <constructor-arg><ref bean="timeUnit"/></constructor-arg>
    <!-- 执行前用于保持任务的队列。此队列仅保持由 execute 方法提交的 Runnable 任务 -->
    <constructor-arg><ref bean="blockingQueue"/></constructor-arg>
 </bean>
2.         实现Callable接口
public class QfSlave
    implements Callable
{
 public Object call() throws Exception
 {//你的线程任务
 }
}
3.         提交任务到线程池,将 executorService注入到需要线程池的地方
QfSlave  slave = new QfSlave();
executorService.submit(slave);//提交任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值