package com.siwei.apply.utils; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** * 异步线程池 * * @author wanger **/ public class FixedThreadUtil { private FixedThreadUtil() { } /** * 线程数 */ private static final int N_CPUS = Runtime.getRuntime().availableProcessors(); /** * 使用 ThreadFactoryBuilder 创建自定义线程名称的 ThreadFactory */ private static final ThreadFactory NAMED_THREAD_FACTORY = new ThreadFactoryBuilder() .setNameFormat("hyn-demo-pool-%d").build(); /** * 创建线程池,其中任务队列需要结合实际情况设置合理的容量 消费大数据kafka */ public static final ThreadPoolExecutor FIXED_THREAD_POOL = new ThreadPoolExecutor(N_CPUS, N_CPUS * 2, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(10240), NAMED_THREAD_FACTORY, new ThreadPoolExecutor.CallerRunsPolicy()); }