import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
public class ThreadPoolUtil
{
private static Logger logger = Logger.getLogger(ThreadPoolUtil.class);
/**
* 默认最大cpu核心数量2倍
*
* @return
*/
public static ExecutorService newThreadPool()
{
int threadNum = Runtime.getRuntime().availableProcessors() * 2;
return ThreadPoolUtil.newThreadPool(threadNum, threadNum, TimeUnit.MILLISECONDS, 1000);
}
public static ExecutorService newThreadPool(int