import java.util.concurrent.*;
/**
多线程工具类
*/
public class ThreadPoolUtils {
private static int CAPACITY = 10000;
// 线程池核心线程数
public static int CORE_POOL_SIZE = 10;
// 线程池最大线程数
private static int MAXIMUM_POOL_SIZE = 30;
// 额外线程空状态生存时间
private static Long KEEP_ALIVE_TIME = 0L;
private static TimeUnit TIME_UNIT = TimeUnit.MILLISECONDS;
private static ExecutorService threadPool;
static {
BlockingQueue<Runnable> workingQueue = new ArrayBlockingQueue<Runnable>(CAPACITY);
RejectedExecutionHandler rejectedExecutionHandler = new ThreadPoolExecutor.AbortPolicy();
threadPool = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE_TIME, TIME_UNIT, workingQueue,
rejectedExecutionHandler);
}
/**
* 提交任务
*
* @param runnable
* @throws
*/
public static void execute(Runnable runnable) {
threadPool.execute(runnable);
}
}
/** 测试工具类是否能使用 */ @Test public void test() { ThreadPoolUtils.execute( new Runnable() { @Override public void run() { System.out.println("1111"); } } ); System.out.println("2"); }结果
2
1111