手把手教你写线程池工具类

Posted 全站资源网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你写线程池工具类相关的知识,希望对你有一定的参考价值。

首先创建一个线程池配置类如下:

package com.alibaba.health.common.util;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.ThreadPoolExecutor;


/**
* 通用线程池
*/
@Configuration
public class ThreadPoolExecutorUtil {

/**
* 线程池维护核心线程数量
*/
@Value("${thread.pool.corePoolSize}")
public int corePoolSize;

/**
* 线程池维护的最大数量
*/
@Value("${thread.pool.maxPoolSize}")
public int maxPoolSize;

/**
* 线程池维护队列数
*/
@Value("${thread.pool.queueCapacity}")
public int queueCapacity;

/**
* 线程池允许的空闲时间
*/
@Value("${thread.pool.keepAlive}")
public int keepAlive;

/**
* 加入bean容器
* @return
*/
@Bean(name = "commonThreadPool")
public ThreadPoolTaskExecutor getThreadPoolExecutor(){
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix("threadPoolExecutor");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
executor.setKeepAliveSeconds(keepAlive);
executor.initialize();
return executor;
}




}


然后在需要的业务类中依赖注入线程池对象:

@Resource(name="commonThreadPool")
private ThreadPoolTaskExecutor threadPool;


@Autowired

这里说明一下,为什么没有用autowired,是为了更清晰的给大家展示,因为在配置类中添加到bean容器时,已经是使用名称的方式,所以这边使用

Resource,当然,根据自己的习惯,两者都可以很好的用起来

在需要的业务方法中调用示例:

public List<Dictionary> findByGroupId(String groupid) {

threadPool.execute(() ->{
commonMapper.addDistrict(object);
});

return commonMapper.findByGroupId(groupid);

}


在实际开发过程中,此工具类是可以拿来直接使用的,更多使用技巧,同学们多多试验吧,我在这里就不一一举例展示了



以上是关于手把手教你写线程池工具类的主要内容,如果未能解决你的问题,请参考以下文章

14个Pandas神操作,手把手教你写代码

手把手教你写小程序--开发工具的下载及安装

手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染

Carson带你学Android:手把手教你写一个完整的自定义View

手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染

手把手教你写嵌入式Linux中的Makefile