有没有比较成熟的开源线程池 公司需要改进线程池,据说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下面 老师说这是一个反射可我弄不懂什么意思 骰子游戏 Class的getResourceAsStream(String name), name对应的路径为什么需要在前面加/ 常量池的问题 高人指点 加分加分java包下载 大家来探讨一下JAVA应用程序怎样做性能测试(主要测试瓶颈) 哪有介绍图形资源回收等性能方面的书籍呀 ***********100分,回答的好就全给他^_^********* 奇怪,jb用的熟的都应该知道阿,怎么没人回答我?再问:Jb5中给一句代码设标记该如何设?在那里设? 关于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下面