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

你可能感兴趣的:(spring,多线程,thread,PHP,.net)