Executer代码如下:
Java代码
public class Executer {
//计算已经派发的任务数(条件谓词)
public static int THREAD_COUNT = 0;
//存储任务的执行结果
private List
//条件队列锁
public final Object lock = new Object();
//线程池
private ExecutorService pool = null;
public Executer() {
this(1);
}
public Executer(int threadPoolSize) {
pool = Executors.newFixedThreadPool(threadPoolSize);
}
/**
* 任务派发
* @param job
*/
public void fork(Job job){
//设置同步锁
job.setLock(lock);
//将任务派发给线程池去执行
futres.add(pool.submit(job));
//增加线程数
synchronized (lock) {
THREAD_COUNT++;
}
}
/**
* 统计任务结果
*/
public List