zoukankan      html  css  js  c++  java
  • 线程池(8)创建标准线程池代码

    阿里规范要求的标准做法2------hutool创建ThreadFactory

    import java.util.concurrent.BlockingQueue;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.LinkedBlockingQueue;
    import java.util.concurrent.RejectedExecutionHandler;
    import java.util.concurrent.ThreadFactory;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
    
    import lombok.extern.slf4j.Slf4j;
    import cn.hutool.core.thread.ThreadFactoryBuilder;
    
    @Slf4j
    public class ThreadPoolExecutorStandard2 {
        public static void main(String[] args) {
            BlockingQueue<Runnable> blockQueue = new LinkedBlockingQueue<Runnable>(1024);
            RejectedExecutionHandler abort = new ThreadPoolExecutor.AbortPolicy();
            ThreadFactory namedThreadFacgtory = new ThreadFactoryBuilder().setNamePrefix("test-pool-").build();
            ExecutorService fixedThreadPool = new ThreadPoolExecutor(3, 5, 50L, TimeUnit.MILLISECONDS, blockQueue,
                    namedThreadFacgtory, abort);
    
            try {
                for (int i = 0; i < 20; i++) {
                    Runnable syncRunnable = new Runnable() {
                        @Override
                        public void run() {
                            log.info(Thread.currentThread().getName());
                            try {
                                Thread.sleep(2000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    };
                    fixedThreadPool.execute(syncRunnable);
                }
            } finally {
                fixedThreadPool.shutdown();
            }
        }
    }

    输出:

    15:11:16.098 test-pool-0

    15:11:16.098 test-pool-1

    15:11:16.098 test-pool-2

    15:11:18.101 test-pool-1

    15:11:18.101 test-pool-0

    15:11:18.101 test-pool-2

    15:11:20.101 test-pool-1

    15:11:20.102 test-pool-0

    15:11:20.102 test-pool-2

    15:11:22.101 test-pool-1

    15:11:22.102 test-pool-0

    15:11:22.104 test-pool-2

    15:11:24.102 test-pool-1

    15:11:24.104 test-pool-0

    15:11:24.105 test-pool-2

    15:11:26.103 test-pool-1

    15:11:26.104 test-pool-0

    15:11:26.105 test-pool-2

    15:11:28.103 test-pool-1

    15:11:28.105 test-pool-0

  • 相关阅读:
    ###MySQL 数据库DataBase
    操作mysql数据库
    发送邮件
    模块-os.system的两个模块/random模块/datetime模块/写日志
    map/fileter
    日期相关-时间模块
    内置函数
    集合+函数
    函数-变量-参数-递归
    模块(os模块)
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/10369988.html
Copyright © 2011-2022 走看看