springboot中多线程问题的优化和处理

自定义线程池,解决线程占满没有响应的问题

1、 首先进行创建配置类,通知bean容器进行创建线程池,对线程进行管理

@Configuration
@EnableAsync
public class ThreadPoolConfig {@Bean(name = "zpPool")public ThreadPoolExecutor zpPool() {return new ThreadPoolExecutor(//核心线程数5,//最大线程数5,60,TimeUnit.SECONDS,//队列大小new LinkedBlockingDeque<Runnable>(Integer.MAX_VALUE),//定义线程名称new ThreadFactory() {private final AtomicInteger mThreadNum = new AtomicInteger(1);@Overridepublic Thread newThread(Runnable r) {return new Thread(r, "zpPool-" + mThreadNum.getAndIncrement());}},//拒绝策略new ThreadPoolExecutor.AbortPolicy());}
}

2、 编写controller 进行线程池的测试工作

@RestController
@Api(tags = "线程池中多线程的测试")
public class manyXcTest {@ResourcetestAsync testAscy;@PostMapping("/testAscy")@ApiOperation("自定义线程池的测试")@AuthPassportpublic Result testAsync() {testAscy.testAscy();return new Result();}}

3、 service中进行调用异步方法一定是加入bean容器中的,synchronized锁保证数据可靠性

@Service
public class testAsync {@SneakyThrows@Async("zpPool")public void testAscy() {int i = 0;i++;int j=0;System.out.println("多线程线程池任务测试 " + i);for ( j = 0; j < 10; j++) {System.out.println("多线程线程池任务测试 " + j+"开始");}System.out.println("多线程线程池任务测试 " + j+"结束");synchronized(this){Thread.sleep(60000);System.out.println("多线程线程池任务测试 " + j+"结束");}}}## 在分布式部署的情况下还有一种方式能够进行保证线程使用的稳定性```java@XxlJob(value = "zpJob", init = "init", destroy = "destroy")public void zpJob1()  {XxlJobHelper.log("zpJob开始执行");// 定期遍历表,设置中间缓存表,将没有执行完的状态设置为0 采用定时任务的方式从表中进行取值进行遍历,采用分布式部署,限制ip地址让一台机器专门进行跑这个定时作业其它机器性能分给其它功能XxlJobHelper.log("zpJob结束执行");}}

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

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

相关文章

13 【PS作图】人物绘画理论-脸型

三庭五眼 三庭&#xff1a;脸的长度比例 &#xff08;1&#xff09;发际线到眉毛 &#xff08;2&#xff09;眉毛到鼻底 &#xff08;3&#xff09;鼻底到下巴 三个部分大致为三等分 五眼&#xff1a;脸的宽度比例 以眼睛长度为单位&#xff0c;把脸的宽度分成五等分&#x…

day1Qt作业

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->resize(540,415);//窗口大小this->setFixedSize(540,415);//固定窗口大小this->setWindowTitle("QQ");//标题this->setWindowIcon(QIcon("E:\\hqyjap…

Java构造器

构造器 无参构造器有参构造器构造方法VS成员方法总结 概念&#xff1a;也称构造方法、构造函数。作用是构造出来一个类的实例&#xff0c;确保对象得到初始化。 格式&#xff1a; 权限修饰符 类名(无参/有参){ }。 分类&#xff1a; 带参数&#xff1a;有参构造器不带参数&am…

大数据在互联网领域的“九大”应用

当下越来越多的应用涉及到大数据&#xff0c;而这些大数据的属性&#xff0c;包括数量&#xff0c;速度&#xff0c;多样性等等都呈现出大数据不断增长的复杂性&#xff0c;所以大数据的分析方法在大数据领域就显得尤为重要&#xff0c;目前互联网大数据运用的九大领域&#xf…

网络演进技术演进:裸纤专线、SDH、MSTP+、OTN、PTN、IP-RAN

前言 文章主要介绍常见名词以及其在各自领域实现的功能价值。 01 裸纤 裸光纤&#xff08;裸光纤&#xff09;由运营商提供&#xff0c;是无中继的光纤线路&#xff0c;仅通过配线架连接。相比传统光纤&#xff0c;裸光纤提供纯粹的物理传输路径&#xff0c;无需额外网…

优化百度SEO:蜘蛛池自动收录的秘诀(蜘蛛池秒收录)

蜘蛛池自动收录技术解析 百度作为国内最大的搜索引擎之一&#xff0c;在网络搜索领域拥有巨大的影响力。对于网站主来说&#xff0c;如何让自己的网站在百度搜索结果中排名靠前&#xff0c;成为关注的焦点。其中&#xff0c;SEO&#xff08;SearchEngineOptimization&#xff…

第十五届蓝桥杯大赛软件赛省赛javaB组(蒟蒻赛时写的题

4个小时&#xff0c;下来感觉&#xff0c;迷迷糊糊的&#xff08;感觉写的题和没写一样&#xff0c;要么暴力&#xff0c;要么写写if els,感觉没有什么体验感。前两个填空题都是签到&#xff0c;第二个填空写的暴力&#xff0c;感觉跑了5分钟左右&#xff0c;其实是可以前缀和优…

Linux字符设备驱动-详解与实操:驱动架构、设备树、Pinctrl子系统和GPIO子系统、platform、设备树下的platform

如何编写一个驱动程序&#xff1a; &#xff08;1&#xff09;确定主设备号 &#xff08;2&#xff09;定义自己的file_operations结构体&#xff1a; 包含对应的open(drv_open)/read(drv_read)等设备操作函数&#xff0c;需要到内核中去注册 &#xff08;3&#xff09;实现…

09-python开发xss扫描器

一、基本思路 1、整体上的思路是发送一个带有Payload参数值的请求&#xff0c;从响应当中判断是否存在Payload(反射性XSS) 2、准备一份字典文件、尽可能包含更多的payload,并给每一个payload进行分类&#xff08;不同的类型匹配的要求不同&#xff09; import requests# 从响…

为什么需要自动化测试?自动化有哪些优势?

前言 自动化测试&#xff0c;最近些年可谓是大火。招聘上的要求也好&#xff0c;培训班的广告也罢&#xff0c;比比皆是&#xff0c;足以说明它在业内的火爆程度。 虽然说会写自动化测试并不能说明你就很牛批&#xff0c;但是你不会的话&#xff0c;那么很抱歉&#xff0c;你…

spring Ai框架调用openai大模型简易demo

前提&#xff1a; 需要科学上网&#xff0c;key没有官方的&#xff0c;就找中转的key1 pom依赖&#xff0c;注意添加的依赖和仓库配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xm…

【C++】从list模拟实现深入理解iterator

目录 前言 一、list节点类 二、迭代器类 三、list类 前言 在string与vector这类存储内存连续的容器中&#xff0c;iterator直接使用指针作为底层即可。但对于list这种存储内存不连续的容器&#xff0c;就不可能使用指针作为底层了。 本文我们将通过对list的学习及模拟实现…

CCNP和HCIP哪个好考?

在网络工程领域&#xff0c;专业认证是衡量技能和知识水平的重要标准。 Cisco的CCNP和华为的HCIP都是业界广泛认可的资深网络工程师认证。 对于渴望提升职业资格的网络工程师来说&#xff0c;选择哪个认证更合适&#xff0c;很多人都在纠结。 01 CCNP认证概览 CCNP认证是思科…

Java常见异常有哪些

java.lang.IllegalAccessError&#xff1a;违法访问错误。当一个应用试图访问、修改某个类的域&#xff08;Field&#xff09;或者调用其方法&#xff0c;但是又违反域或方法的可见性声明&#xff0c;则抛出该异常。 java.lang.InstantiationError&#xff1a;实例化错误。当一…

【中等】保研/考研408机试-动态规划1(01背包、完全背包、多重背包)

背包问题基本上都是模板题&#xff0c;重点&#xff1a;弄熟多重背包模板 dp[j]max(dp[j-v[i]]w[i],dp[j]) //核心思路代码&#xff08;一维数组版&#xff09; dp[i][j]max(dp[i-1][j], dp[i-1][j-v[i]]w[i])//二维数字版 一、 0-1背包 一般输入两个变量&#xff1a;体积&…

力扣每日一题-拆炸弹-2024.5.5

力扣题目&#xff1a;拆炸弹 题目链接: 1652.拆炸弹 题目描述 代码思路 根据代码实现分为k等于0和k不等于0的情况。k等于0很容易处理&#xff0c;而k不等于0时&#xff0c;需要使用滑动窗口的方式来解决。先根据小于0或大于0确定一个窗口&#xff0c;然后移动&#xff0c;获…

PostgreSQL SUM踩坑

空集合的SUM()将返回NULL&#xff0c;而不是零。 示例SQL SELECT SUM (amount) FROM payment WHERE customer_id 2000;如果没有查询到数据,那么返回的将是NULL sum ------null (1 row)解决方案 如果您希望SUM()函数在没有匹配行的情况下返回0而不是NULL&#xff0c;可以使用…

【Mac】 DSync for mac(文件比较同步工具) v2.7安装教程

软件介绍 DSync是一款文件比较同步工具&#xff0c;通过简便的三步即可完成繁琐的比较、同步操作&#xff0c;您甚至可以通过跳过、删除或反转您选择的文件的复制方向来微调您的同步。这是在Mac上同步文件的最简单方法。 安装教程 1.打开安装包&#xff0c;将「DSync」拖到右…

YUM源仓库部署和NFS共享存储服务

一.YUM源仓库部署 1.YUM 概述 &#xff08;1&#xff09;是基于RPM软件包构建的软件更新机制 &#xff08;2&#xff09;可以自动解决依赖关系 &#xff08;3&#xff09;所有软件包有集中的YUM软件仓库提供 2.准备YUM源 &#xff08;1&#xff09;软件仓库的提供方式&…

个人直播/流媒体服务解决方案实践

目录 1. 说明 1.1 拓扑结构图 2. 准备工作 2.1 软硬件清单 3. 步骤 3.1 按上面的软硬件清单准备好材料 3.2 内网检查测试 3.3 透传到公网服务器 3.5 机顶盒配置 4. 总结 5. 参考 6. 后语 1. 说明 - 在本地局域网建立流媒体服务&#xff0c;并发布到公网服务器供终…