**
* @function 自定义基础线程池
* @author guo
* @date 2022/6/27
*/
public enum BasicExecuteThreadPool {
/**
* 22
*/
INSTANCE;
/**基础线程数量=cpu核数+1 */
static int corePoolSize = Runtime.getRuntime().availableProcessors() + 1;
/** 最大线程数量 = cpu 核树 * 4 */
static int maxPoolSize = Runtime.getRuntime().availableProcessors() * 4;
/** 超出核心线程的数量的线程!空闲存活时间 */
static Long keepAliveTime = 0L;
/** 默认队列大小 根据服务器性能而定 */
private static final int DEFAULT_SIZE = 500;
private static final BlockingQueue<Runnable> EXECUTE_QUEUE = new ArrayBlockingQueue<>(DEFAULT_SIZE);
private static final ThreadPoolExecutor EXECUTOR = new ThreadPoolExecutor(
corePoolSize,
maxPoolSize,
keepAliveTime,
TimeUnit.MILLISECONDS,
EXECUTE_QUEUE, new NameThreadFactory("Exchange_Conn"));
BasicExecuteThreadPool() {}
public void submitTask(Runnable runnable) {
EXECUTOR.execute(runnable);
}
}