Springboot 多线程的使用

直接上代码

线程配置类

package zengmg.nbpi.com.thread;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.Executor;/*** @Auther 松门一枝花* @Date 2020/5/28*/
@Configuration
@EnableAsync  // 启用异步任务
public class AsyncConfiguration {// 声明一个线程池(并指定线程池的名字)@Bean("nbpiTaskExecutor")public Executor asyncExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();//核心线程数:线程池创建时候初始化的线程数executor.setCorePoolSize(5);//最大线程数:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程executor.setMaxPoolSize(500);//允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁executor.setKeepAliveSeconds(60);//线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池executor.setThreadNamePrefix("DailyAsync-");executor.initialize();return executor;}
}

服务类

package zengmg.nbpi.com.thread;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;/*** @Auther 松门一枝花* @Date 2020/5/28*/
@Service
public class CustomMultiThreadingService {private static final Logger logger = LoggerFactory.getLogger(CustomMultiThreadingService.class);/*如何让异步调用的执行任务使用这个线程池中的资源来运行呢?方法非常简单,我们只需要在@Async注解中指定线程池名即可*/@Async("nbpiTaskExecutor")public void executeAysncTask(Integer i) throws InterruptedException {logger.info("CustomMultiThreadingService ==> executeAysncTask1 method: 执行异步任务{} ", i);Thread.sleep(500L);}}

控制类

package zengmg.nbpi.com.thread;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** @Auther 松门一枝花* @Date 2020/5/28*/
@Controller
@RequestMapping(value="/multithreading")
public class CustomMultiThreadingController {@Autowiredprivate CustomMultiThreadingService customMultiThreadingService;@ResponseBody@RequestMapping("/dotask")public String doTask() {try {for (int i=0;i<100000;i++){customMultiThreadingService.executeAysncTask(i);}} catch (InterruptedException e) {e.printStackTrace();}return "success";}}

运行效果

 

异步方法和调用方法一定要写在不同的类中 ,如果写在一个类中,是没有效果的!

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vlookup函数练习_为什么职场要学excel函数?看这个案例演示:自动计算快递价格...

在上一篇文章里面&#xff0c;我们讲了如何整理完成一个规范化的表格&#xff0c;以便于下一步的函数计算。最初的信息内容如图所示。经过整理&#xff0c;我们得到了表2这样的规范化表格。现在&#xff0c;我们就通过表2来实现快递费用自动计算&#xff0c;最终实现图中这样的…

蓝牙芯片排行_7月TWS 全球品牌出货量排行榜出炉

数据铸造影响力撰文 / 旭日大数据编辑 / 柏序旭日大数据公布了2020年7月全球TWS品牌销量排行榜&#xff0c;与上期数据相比&#xff0c;全球品牌七排名TOP20汰换率为15%&#xff0c;其中DOSS&#xff0c;万魔、BOSE跌出前20&#xff0c;广州由我&#xff0c;Tzumi登榜&…

project 打印的时候上面的表格和下面的图例中间有个很大的空白,这块东西怎么能去掉呢?

“打印预览”的“页面设置”里面&#xff0c;“页面”选项卡里的“缩放”项设为1页宽&#xff0c;1页高就可以了&#xff0c; 当然如果你的任务项比较少的话&#xff0c;怎么调也不容易去掉下面的空白 操作如下图&#xff08;下图的任务太少&#xff0c;去不掉空白的&#xf…

加密机工作原理_端子机压力检测装置工作原理

上期我们介绍了端子机压力管理装置的使用常识&#xff0c;这期我们介绍端子机压力管理装置的工作原理&#xff0c;端子机压接管理装置&#xff0c;有单通道压力监测和双通道压力监测二种&#xff0c;双通道压力监测装置&#xff0c;一般用于双头端子压接机上&#xff0c;一台主…

win10解决java多版本java -version问题

电脑环境 先安装了Jdk8&#xff0c;后安装了jdk11.&#xff08;发现Jdk11没有单独的jre&#xff0c;官网也不提供下载&#xff0c;集成在一起了&#xff09; Java -version 将环境变量切换为 JDK11 后 javac -version 是 java编译环境是jdk11了&#xff0c;但 java -versio…

vs设计窗口不见了_碳纤维的巅峰:VS沛纳海616V3

各位朋友&#xff0c;你们好&#xff01;欢迎大家关注XYZ腕表俱乐部。专注腕表资讯&#xff0c;致力于做腕表拆解测评&#xff0c;为大家普及分享有价值的腕表知识&#xff0c;真正让大家实实在在透明玩表。想了解更多&#xff0c;欢迎搜索&#xff1a;XYZ腕表俱乐部。可以让您…

CSharpGL(49)试水OpenGL软实现

CSharpGL(49)试水OpenGL软实现 CSharpGL迎来了第49篇。本篇内容是用C#编写一个OpenGL的软实现。暂且将其命名为SoftGL。 目前已经实现了由Vertex Shader和Fragment Shader组成的Pipeline&#xff0c;其效果与显卡支持的OpenGL实现几乎相同。下图左是常规OpenGL渲染的结果&#…

SonarQube结合IDEA实现代码检测

环境准备 1.SonarQube下载&#xff1a;https://www.sonarqube.org/downloads/ 建议用最新版本&#xff0c;SonarQube与idea的结合 需要SonarQube很多插件&#xff0c;需要借助idea的SonarLint 插件。 不同的SonarQube版本&#xff0c;有不同的插件版本 idea的SonarLint 插件…

二维小波变换_【外文文献速读】实时二维水波模拟

题目&#xff1a;Water surface wavelets 作者&#xff1a;Stefan Jeschke&#xff0c; TomšSkřivan&#xff0c; MatthiasMller-Fischer&#xff0c; Nuttapong Chentanez&#xff0c; Miles Macklin&#xff0c; Chris Wojtan

技术开发(委托)合同怎么写?

一直基于宁波市科技局备案合同模板签订合同&#xff0c;并完成科技局备案工作&#xff0c;成功了N次&#xff0c;直接分享模板&#xff0c;该模板通过了法务审核&#xff0c;财务审核&#xff0c;只需要批示修改相关内容即可&#xff0c;一份技术开发委托合同&#xff0c;十几分…

最常用的15个前端表单验证JS正则表达式

2019独角兽企业重金招聘Python工程师标准>>> 在表单验证中&#xff0c;使用正则表达式来验证正确与否是一个很频繁的操作&#xff0c;本文收集整理了15个常用的JavaScript正则表达式&#xff0c;其中包括用户名、密码强度、整数、数字、电子邮件地址&#xff08;Ema…

程序员个人外包合同怎么写?

分享一份工作上经常用到的个人外包合同协议&#xff0c;该协议通过了法务与财务审核&#xff0c;兼顾甲乙双方利益&#xff0c;程序员接私活必备&#xff01;&#xff01;&#xff01;&#xff01; ---需要电子word版&#xff0c;请关注--------- 回复&#xff1a;个人外包合同…

rocketmq新扩容的broker没有tps_深入研究RocketMQ消费者是如何获取消息的

前言小伙伴们&#xff0c;国庆都过的开心吗&#xff1f;国庆后的第一个工作日是不是很多小伙伴还沉浸在假期的心情中&#xff0c;没有工作状态呢&#xff1f;那王子今天和大家聊一聊RocketMQ的消费者是如何获取消息的&#xff0c;通过学习知识来找回状态吧。废话不多说&#xf…

苏宁 11.11:仓库内多 AGV 协作的全局路径规划算法研究

本文为『InfoQ x 苏宁 2018双十一』技术特别策划系列文章之一。 1. 背景 随着物联网和人工智能的发展&#xff0c;越来越多的任务渐渐的被机器人取代&#xff0c;机器人逐渐在发展中慢慢进入物流领域&#xff0c;“智能叉车”&#xff0c;AGV&#xff08;Automated Guided Vehi…

用python绘制玫瑰花的代码_python也能玩出玫瑰花!程序员的表白代码

有些情侣是异地恋&#xff0c;情人节想送朵玫瑰花给女朋友都困难。别担心&#xff0c;用Python就好了&#xff0c;互联网时代的恋爱神器&#xff01;接下来就让我们一起来看看如何用Python变出玫瑰花的。 1、首先我们导入画图工具turtle&#xff0c;即import turtle 2、导入画图…

Springboot 整合 swagger

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/83622098 swagger 主要是为后端服务的接口文档&#xff0c;懒人必备&#xff0c;swagger就是一款让你更好的书写API文档的框架。 其他的框架…

Project为项目设置预算

假设项目预算10万元&#xff0c;如果项目完成后&#xff0c;花费没有超过10万元&#xff0c;则成本管理是成功的&#xff0c;如果花费了11万&#xff0c;则超过了预算。 预算是10万&#xff0c;一般目标成本设得比预算成本低&#xff0c;比如9.5万。在项目实施过程中&#xff…

activiti7流程设计器_变频空调器通信电路

通信电路由室内机和室外机主板两个部分单元电路组成&#xff0c;并且在实际维修中该电路的故障率比较高&#xff0c;因此单设--节进行详细说明。第三章变频空调器单元电路对比和通信电路第二节通信电路通信电路由室内机和室外机主板两个部分单元电路组成&#xff0c;并且在实际…

PyCharm 中为 Python 项目添加.gitignore文件

文章目录 1.安装.ignore插件 2.在项目中添加.ignore文件 1.安装.ignore插件 在pycharm编译器中&#xff0c;依次点击File->Setting 在跳出Setting的页面中&#xff0c;执行如下操作&#xff1a; 点击左侧的Plugins&#xff0c; 在搜索框中输入.ignore 点击右侧的install 点…

mysql的分页查询

为什么80%的码农都做不了架构师&#xff1f;>>> order by case when 的用法&#xff08;实现特殊情况的排序&#xff0c;如leader1的排最前面&#xff09;&#xff1a; select * from m_worker_project order by CASE WHEN leader 1 THEN 100 ELSE 1000 END 项目中…