在以上代码中使用了ExceptionAdapter这个类它的作用是把一个checked Exception包装成RuntimeException详细的说明可以参考我的避免在Java中使用Checked Exception一文
接下来我们需要一个对象来表现Thread缓沖池所要执行的任务可以发现JDK中的Runnable interface非常合适这个角色
最后剩下工作线程的实现就很简单了从SyncQueue里取出一个Runnable对象并执行它
public class Worker implements Runnable {
public Worker(SyncQueue queue) {
_queue = queue;
}
public void run() {
while (true) {
Runnable task = (Runnable) _queueget();
taskrun();
}
}
protected SyncQueue _queue = null;
}
下面是一个使用这个Thread缓沖池的例子
//构造Thread缓沖池
SyncQueue queue = new SyncQueue();
for (int i = ; i < ; i ++) {
new Thread(new Worker(queue))start();
}
//使用Thread缓沖池
Runnable task = new MyTask();
queueput(task);
为了使本文中的代码尽可能简单这个Thread缓沖池的实现是一个基本的框架当使用到实际中时一些其他功能也可以在这一基础上添加比如异常处理动态调整缓沖池大小等等
[] [] []