记一次项目中线程池的实际应用

TestThreadServiceImpl类

    // 线程池初始化
    public static ThreadPoolExecutor pool = null;
    
    //线程池各个参数定义
    static
    {
        // corePoolSize:核心线程数(5)
        // maxPoolSize:最大线程数(10)
        // queueCapacity:任务队列容量(阻塞队列20)
        // keepAliveTime:线程空闲时间
        // allowCoreThreadTimeout:允许核心线程超时
        // rejectedExecutionHandler:任务拒绝处理器
        pool = new ThreadPoolExecutor(5, 10, 20, TimeUnit.MINUTES, new ArrayBlockingQueue(10));
    }


private void method()
{
            TestThread testThread =
                new TestThread ("a", "b", "c");
            pool.execute(testThread);
}
*********************************************************
TestThread类

public class TestThread extends Thread
{
    
    protected static Logger logger = Logger.getLogger(TestThread.class.getName());
    
        public TestThread (String a, String b, String c)
    {
        this.a= a;
        this.b= b;
        this.c= c;
    }

    public void run()
    {
        logger.error("");
        try
        {
            // 具体业务逻辑
        }
        catch (Exception e)
        {
            logger.error("", e);
        }
        logger.error("");
    }
}

 

你可能感兴趣的:(记一次项目中线程池的实际应用)