Synchronized关键字使用不合理,导致的多线程下线程阻塞问题排查

news2024/10/2 16:30:30

在为客户进行性能诊断调优时,碰到了一个Synchronized关键字使用不合理导致多线程下线程阻塞的情况。用文字记录下了问题的整个发现-排查-分析-优化过程,排查过程中使用了商业化产品——XLand性能分析平台,通过文章主要希望跟大家分享下分析和优化思路以及注意点,有兴趣深入了解的同学可以评论交流。

现象

在执行单接口负载“判断登陆是否正常接口”测试时候,发现10用户增加至50用户并发,TPS保持不变,响应时间处于持续递增状态,应用CPU为27%,数据库CPU为3%,资源消耗维持稳定状态,由此判断应用程序可能存在瓶颈。
 

1.png


 

2.png

3.png

分析

通过XLand分析平台线程分析,发现某线程存在锁等待情况,通过XLand中的x分析定位,发现AuthProvider类中getAccessor方法有Synchronized关键字,当两个以上线程同时调用该同步方法时,每次只能有一个线程能进入该方法,其他线程必须等前一个线程执行完该同步方法后,才能有机会进入。
 

马赛克4.png

5.png

风险点

Synchronized关键字解决的是多个线程之间访问资源的同步性,Synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。谨慎使用Synchronized关键字,以防导致不必要的线程阻塞,影响响应时间。

优化建议

把AuthProvider类中的Synchronized关键字去掉,发现在10用户并发下判断登陆是否正常接口TPS由原来的174笔/秒增长至624笔/秒,增长了3倍。

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

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

相关文章

pycharm pro v2023.2.4(Python开发)

PyCharm是一种Python集成开发环境(IDE),PyCharm提供了强大的功能,包括语法突出显示、智能代码完成、代码检查、自动重构和调试等特性,这些都可以帮助Python开发人员更加高效地编写代码。 PyCharm Pro是PyCharm的高级版…

SSM整合redis及redis的注解式开发和解决Redis缓存问题

一.SSM整合Redis 1.pom配置 用于解决运行时没有将数据库配置信息jdbc.properites加载到target文件中 <resource><directory>src/main/resources</directory><includes><include>*.properties</include><include>*.xml</includ…

《巧用ChatGPT快速提高职场晋升力》书籍推荐【包邮送书五本】

文章目录 书籍介绍内容介绍ChatGPT 在人工智能助手领域的应用1 智能客服2 语音助手3 个人助手4 内容创作与编辑5 数据分析与报告生成6 社交媒体管理7 智能编程助手 抽奖送书 书籍介绍 ★超实用 通过30多个实战案例和操作技巧&#xff0c;使读者能够快速上手并灵活运用ChatGPT技…

操作系统:银行家算法

文章目录 银行家算法一、实验目的二、实验要求与内容、过程与结果 系列文章 银行家算法 一、实验目的 1、理解银行家算法。 2、掌握进程安全性检查的方法及资源分配方法。 二、实验要求与内容、过程与结果 1、将图5-1补充完整&#xff0c;画出银行家算法的流程图。 图5-1 银…

el-table给某一行加背景色

数据列表中总价大于100的一行背景色为红色&#xff0c;效果图如下&#xff1a; 代码示例&#xff1a; <template><div id"app"><!-- 测试区域&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&am…

正式发布!万应低代码入选中国信通院《2023高质量数字化转型技术解决方案集》

随着科技的快速发展和市场竞争的日益激烈&#xff0c;数字化转型已成为企业持续发展和提升竞争力的关键。然而&#xff0c;在数字化转型的过程中&#xff0c;许多企业面临着诸多痛点&#xff0c;如缺乏先进的技术与方案、难以实现数据互通和集成、无法有效提升业务效率与规模。…

Redis-----SSM整合redis及redis的注解式开发以及redis的击穿,穿透,雪崩三种解决方案

目录 SSM项目整合Redis 导入pom依赖 配置文件spring-redis.xml redis.properties 配置redis的key生成策略 redis的注解式开发及应用场景 什么是redis的注解式 redis注解式的场景应用 Cacheable 自定义策略 Cacheable可以指定三个属性&#xff0c;value、key和condition…

自制圆形时钟⏰

如果想着做一个类似的家里的圆形时钟的样式的钟表&#xff0c;可以使用这样的方法&#xff1a; #import "ViewController.h" interface ViewController () property (nonatomic,weak)CALayer *second; property (nonatomic ,weak)CALayer *minute; property (nona…

内存卡读不出来怎么办?正确解决方法看这!

“不知道大家有没有遇到过内存卡读不出来的情况呀&#xff1f;我内存卡里还有很多重要的文件和材料&#xff0c;现在都无法读取&#xff0c;有什么方法可以帮我解决这个问题吗&#xff1f;” 内存卡的使用越来越频繁&#xff0c;可能很多用户会将比较重要的文件都保存在内存卡中…

【Python基础】 Python设计模式之单例模式介绍

单例模式 1.设计模式2.单例设计模式的应用场景3.new方法4. Python 中的单例 1.设计模式 设计模式 是 前人工作的总结和提炼&#xff0c;通常&#xff0c;被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理…

只需两步折叠GoLand的控制台中多余的信息,控制台显示无效内容太多(GOROOT、GOPATH)

一、问题&#xff1a;Goland控制台无效内容过多&#xff1a; GoLand的控制台显示无效内容太多&#xff08;GOROOT、GOPATH&#xff09;&#xff0c;一键将折叠控制台多余的信息&#xff0c;如图所示&#xff1a; 二、解决方法&#xff1a; 第一步&#xff1a;Window系统是&am…

【网络编程】如何将UDP协议变得更可靠

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

Verilog刷题[hdlbits] :Always case

题目&#xff1a;Always case Case statements in Verilog are nearly equivalent to a sequence of if-elseif-else that compares one expression to a list of others. Its syntax and functionality differs from the switch statement in C. Verilog中的Case语句几乎等同…

答题小程序排位pk答题怎么玩

答题小程序排位PK答题升级赛是一个备受喜爱的功能&#xff0c;它不仅增加了用户之间的互动和竞争&#xff0c;同时也为答题小程序增添了更多的趣味性和挑战性。那么&#xff0c;如何参与答题小程序的排位PK答题升级赛呢&#xff1f;本文将详细介绍答题小程序的排位PK答题升级赛…

网络安全与TikTok:年轻一代的数字素养

在数字时代&#xff0c;互联网成为我们生活的重要组成部分&#xff0c;而社交媒体平台则在年轻一代中变得日益流行。其中&#xff0c;TikTok作为一个短视频分享平台&#xff0c;吸引了全球数以亿计的用户&#xff0c;尤其年轻人。 然而&#xff0c;与其快速的普及相伴随的是网…

思维模型 首因效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。先入为主&#xff0c;一见钟情。 1 首因效应的应用 1.1 面试中的首因效应 小李是一名应届毕业生&#xff0c;他准备参加一家知名互联网公司的面试。在面试前&#xff0c;他做了充分的准备…

leetcode 215. 数组中的第K个最大元素

2023.11.7 本题两个思路&#xff0c;一个是先将数组排序&#xff0c;再从后往前数第k个元素即为第k个最大的元素。 或者使用优先队列&#xff0c;将数组元素放入队列中&#xff0c;当队列元素数量超过k时&#xff0c;弹出队列元素&#xff0c;由于优先队列的性质&#xff0c;每…

CodeWhisperer 的正确使用

1、重点&#xff1a; 重点1&#xff1a; 推出 Amazon Bedrock。这项新服务允许用户通过 API 访问来自 AI21 Labs、Anthropic、Stability AI 和亚马逊的基础模型。&#xff08;Anthropic 就是之前跟 ChatGPT 掰手腕的 Claude 的模型。Stability AI 就是 Stable Diffusion 背后的…

外汇天眼:如何识破网络交友诈骗套路? 看到这7大特征请提高警觉

随着各种社群平台与交友APP不断推陈出新&#xff0c;现代人愈来愈习惯透过网路建立人际关系甚至谈恋爱。 但由于网络具有极高的匿名性&#xff0c;因此也成为诈骗温床&#xff0c;对社会造成相当严重的损失。 有鉴于此&#xff0c;外汇天眼根据一直以来收到针对黑平台的投诉与…

各省市30米分辨率DEM数据,推荐下载!

今天给大家推荐一个新数据 —— 各省市30米分辨率DEM数据&#xff01; 各省市30米分辨率DEM数据广泛应用于国土资源调查、水利水电工程、地质灾害预警、城市规划等领域&#xff0c;对于了解区域内的地形地貌、地形分析、土地利用等具有非常重要的意义。 网站搜索“citybox城市…