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);//提交任务

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nearsun/archive/2008/02/02/2077961.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值