首页 > 其他分享 >springboot创建线程池

springboot创建线程池

时间:2023-12-01 12:13:01浏览次数:42  
标签:springboot 创建 任务 线程 executor taskExecutor ThreadPoolTaskExecutor public

1.线程池的配置:

@Configuration
public class ThreadPoolConfig {

@Bean(name = "myThreadPool") // 告诉你这个线程池的名字
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10); // 核心线程数
executor.setMaxPoolSize(20); // 最大线程数
executor.setQueueCapacity(100); // 队列容量
executor.setKeepAliveSeconds(30); // 线程活动时间
executor.setThreadNamePrefix("MyThreadPool-"); // 线程名前缀

executor.setRejectedExecutionHandler(new java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy()); // 拒绝策略

executor.initialize(); // 初始化
return executor;
}
}

2.使用线程池

@Service
public class MyService {

private final ThreadPoolTaskExecutor taskExecutor;

  // 这个方法是为了加一层确定你引入的线程池是之前定义好的那个,如果你只定义过一个线程池的话此方法就不需要了,但是如果有多个这个就是必须
public MyService(@Qualifier("myThreadPool") ThreadPoolTaskExecutor taskExecutor) {
this.taskExecutor = taskExecutor;
}

public void executeTask() {
taskExecutor.execute(() -> {
// 你的任务代码
System.out.println("异步任务执行");
});
}
}

3.定义多个任务

public void executeTask() {
// 第一个任务
taskExecutor.execute(() -> {
// 你的任务代码
System.out.println("异步任务1执行");
});

// 第二个任务
taskExecutor.execute(() -> {
// 另一个任务代码
System.out.println("异步任务2执行");
});
}

 

标签:springboot,创建,任务,线程,executor,taskExecutor,ThreadPoolTaskExecutor,public
From: https://www.cnblogs.com/baoguiying/p/17869415.html

相关文章

  • springboot如何用jar包启动,同时为不同机房设置不同的配置文件
    1、首先先把配置文件从jar中抽离示例代码:<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.2.0</version><configuration><excludes>......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标第10次-创建一个在线网站个人博客网站链接:https://whanfady.github.io/......
  • springboot云HIS信息管理系统
    系统功能:为居民建立一份动态、连续、实时、共享的个人电子健康档案,包括家庭和个人信息采集、编辑、常见病诊疗、疾病预防控制服务和健康教育。针对基层医院的业务特点,实现以财务核算为基础,以临床医疗服务为中心的全程信息化管理,主要包括以下业务模块:门诊住院收费管理、以电子病历......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标1.在线公开访问2.使用gitee或者github3.创建一个博客、简历4.也可以使用其他平台链接:https://xiaodong......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标<第10次-创建一个在线网站>个人简历:https://yangjinlong1027.github.io/......
  • 基于SpringBoot的在线视频教育平台-计算机毕业设计源码+LW文档
    一、选题背景及选题意义(国内外研究现状、初步设想及拟解决的问题):选题背景及意义:在线教育顾名思义,是以网络为介质的教学方式,通过网络,学员与教师即使相隔万里也可以开展教学活动;此外,借助网络课件,学员还可以随时随地进行学习,真正打破了时间和空间的限制,对于工作繁忙,学习时间不固定的......
  • Springboot017学生读书笔记共享-计算机毕业设计源码+LW文档
    摘要本论文主要论述了如何使用JAVA语言开发一个读书笔记共享平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述读书笔记共享平台的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶......
  • 【Azure App Service】同一个App Service下创建多个测试站点的方式
    问题描述在一个AppService中,部署多个应用,每个应用相互独立,类似与IIS中在根目录下创建多个子应用的情况。 问题解答可以的。通过AppServiceConfiguration页面,添加virtualapplication,站点链接即对应的virtualpath,在virtualpath下上传应用部署包 具体操作可以参考:ht......
  • SSM SpringBoot vue考勤信息管理系统
    SSMSpringBootvue考勤信息管理系统系统功能登录注册个人中心部门信息管理上班时间管理考勤信息管理员工信息管理签到管理请假信息管理加班申请管理出差申请管理开发环境和技术开发语言:Java使用框架:SSM(Spring+SpringMVC+Mybaits)或SpringBoot前端:v......
  • anaconda创建环境老报错,是咋回事?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【刘流】问了一个Python创建虚拟环境的问题,一起来看看吧。问题描述:大佬们打搅下,anacondapowershellprompt创建环境老报错,是咋回事?报错截图如下:二、实现过程【隔壁......