package jdepend.framework.util;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ThreadPool {
public final static int ThreadCount = Runtime.getRuntime().availableProcessors();
private final static int awaitTerminationTimeOut = 100;
public static ExecutorService getPool(){
return Executors.newFixedThreadPool(ThreadPool.ThreadCount);
}
public static void awaitTermination(ExecutorService pool){
pool.shutdown();
try {
boolean loop = true;
do { // 等待所有任务完成
loop = !pool.awaitTermination(ThreadPool.awaitTerminationTimeOut, TimeUnit.MILLISECONDS);
} while (loop);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void shutdown(ExecutorService pool){
pool.shutdown();
}
}