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








