美文网首页
线程池工具类

线程池工具类

作者: 皮皮咕 | 来源:发表于2018-08-01 11:39 被阅读0次
    /**
     * 线程池工具类
     * @author Arthas
     * @create 2018/7/17
     */
    public class ThreadPoolUtils {
    
        private static final Logger logger = LoggerFactory.getLogger(ThreadPoolUtils.class);
        /**
         * 线程池维护线程的最少数量
         */
        private static final int SIZE_CORE_POOL = 3;
        /**
         * 线程池维护线程的最大数量
         */
        private static final int SIZE_MAX_POOL = 10;
    
        /**
         * 禁止手动初始化
         */
        private ThreadPoolUtils(){}
    
        /**
         * 通过枚举创建单例对象
         */
        private enum Singleton {
            /**
             * 线程池单例
             */
            SINGLETON;
            private ThreadPoolExecutor threadPool;
            Singleton() {
                // 为线程池命名
                ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
                        .setNameFormat("线程池工具类-pool-%d").build();
                // 创建线程池
                threadPool = new ThreadPoolExecutor(
                        SIZE_CORE_POOL,
                        SIZE_MAX_POOL,
                        0L,
                        TimeUnit.MILLISECONDS,
                        new LinkedBlockingQueue<Runnable>(),
                        namedThreadFactory);
            }
    
            /**
             * 返回单例对象
             */
            public ThreadPoolExecutor getThreadPool() {
                return threadPool;
            }
        }
    
        /**
         * 向池中添加任务
         * @param task
         */
        public static void addExecuteTask(Runnable task) {
            if (task != null) {
                Singleton.SINGLETON.getThreadPool().execute(task);
            }
        }
    
    }
    

    相关文章

      网友评论

          本文标题:线程池工具类

          本文链接:https://www.haomeiwen.com/subject/xyblvftx.html