有没有比较成熟的开源线程池 公司需要改进线程池,据说apache有现成的线程池类库?请问谁有这方面的资料?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /* * 创建日期 2006-4-22 * 项目名称 Library.Core * 所在包名 jp.kernel.newage.lib.util.concurrent * 版权所有 (C) 1996-2006 困了 */package jp.kernel.newage.lib.util.concurrent;import java.io.Serializable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ThreadFactory;/** * 线程管理模块 * * @author 困了 * @version 1.0.0 */public abstract class KThreadManager implements Serializable { /** 服务是否已经开始 */ protected static boolean blnStarted; /** 默认的线程执行服务 */ protected static ExecutorService etsContainer; /** 默认的线程工厂 */ protected static ThreadFactory tdfContainer; /** * 获取默认的线程执行服务 * * @return 默认的线程执行服务 */ protected static synchronized ExecutorService getExecutorService() { return null != etsContainer ? etsContainer : (etsContainer = Executors .newCachedThreadPool(getThreadFactory())); } /** * 获取默认的线程工厂 * * @return 默认的线程工厂 */ protected static synchronized ThreadFactory getThreadFactory() { return null != tdfContainer ? tdfContainer : (tdfContainer = Executors .defaultThreadFactory()); } /** * 获取一个新的线程 * * @param r * 线程执行类 * @return 新的线程 */ public static Thread newThread(Runnable r) { return getThreadFactory().newThread(r); } /** * 停止服务 */ public static synchronized void shutdown() { if (blnStarted) { try { getExecutorService().shutdown(); } finally { etsContainer = null; blnStarted = false; } } } /** * 执行并提交一个线程任务 * * @param r * 线程执行类 */ public static synchronized void submit(Runnable r) { try { getExecutorService().submit(r); } finally { blnStarted = true; } }} java.util.concurrent 已经封装得很好了, 上面的代码封装的有什么意义啊而且几乎每个方法都是synchronized, 画蛇添足.等学学多线程再来发表代码吧. 有道理现在JDK1.5里面已经封装了线程池的操作它就在包java.util.concurrent下面 关于httpclient this指代 jcreator4.0pro不支持中文,怎么办 <<JAVA编程思想>>中的一个问题,请高手给予指点!!! 初学者问题,Class.forName()失败。 PreparedStatement 问题! 怎样方便地去掉字符串末尾的空格,不用正则表达式,谢谢 50分求助,java里面如何对一大段文本转义??有这样的功能吗? java打印??新手请教! 我在JPenel中设置字体,但字体不会发生改变,为什么? 关于Ant的命令 30分求教下面几行代码的使用方法
* 创建日期 2006-4-22
* 项目名称 Library.Core
* 所在包名 jp.kernel.newage.lib.util.concurrent
* 版权所有 (C) 1996-2006 困了
*/
package jp.kernel.newage.lib.util.concurrent;import java.io.Serializable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;/**
* 线程管理模块
*
* @author 困了
* @version 1.0.0
*/
public abstract class KThreadManager implements Serializable { /** 服务是否已经开始 */
protected static boolean blnStarted; /** 默认的线程执行服务 */
protected static ExecutorService etsContainer; /** 默认的线程工厂 */
protected static ThreadFactory tdfContainer; /**
* 获取默认的线程执行服务
*
* @return 默认的线程执行服务
*/
protected static synchronized ExecutorService getExecutorService() {
return null != etsContainer ? etsContainer : (etsContainer = Executors
.newCachedThreadPool(getThreadFactory()));
} /**
* 获取默认的线程工厂
*
* @return 默认的线程工厂
*/
protected static synchronized ThreadFactory getThreadFactory() {
return null != tdfContainer ? tdfContainer : (tdfContainer = Executors
.defaultThreadFactory());
} /**
* 获取一个新的线程
*
* @param r
* 线程执行类
* @return 新的线程
*/
public static Thread newThread(Runnable r) {
return getThreadFactory().newThread(r);
} /**
* 停止服务
*/
public static synchronized void shutdown() {
if (blnStarted) {
try {
getExecutorService().shutdown();
} finally {
etsContainer = null;
blnStarted = false;
}
}
} /**
* 执行并提交一个线程任务
*
* @param r
* 线程执行类
*/
public static synchronized void submit(Runnable r) {
try {
getExecutorService().submit(r);
} finally {
blnStarted = true;
}
}}
而且几乎每个方法都是synchronized, 画蛇添足.
等学学多线程再来发表代码吧.
现在JDK1.5里面已经封装了线程池的操作
它就在包java.util.concurrent下面