全球播报:性能提升 200% !SpringBoot 虚拟线程来了
在以往的项目中,我们面临了这样一种情况:我们收到了数千个认证请求。为了确保安全性,我们依靠第三方系统发送短信 OTP 进行验证。然而,有时候第三方系统花费的时间比预期的要长,导致延迟。我们采用了每个请求一个线程的模型,这意味着许多线程处于等待状态,并且新请求都在队列中。我们试图通过微调线程数量来优化性能,但当时我们希望有虚拟线程功能。当时 Java 中没有虚拟线程的概念,这就是 Project Loom 的作用。
(资料图片仅供参考)
什么是 Project Loom?什么是 Project Loom?这是 Oracle 的一个新项目,主要目标是显著减少编写、维护和观察高吞吐量并发应用程序的工作量。换句话说,Project Loom 旨在支持和推进一个高吞吐量、轻量级的 Java 并发模型,因为传统的操作系统线程(Java 并发模型的核心)有一些缺点,并且在计算上相当昂贵。反之,虚拟线程是更轻量级的线程,不与操作系统线程连接(由 JVM 管理)。这意味着虚拟线程是“每请求对应一个线程”编程的理想选择,可以创建大量的虚拟线程,而不会降低吞吐量。开发人员可以使用现有的 JDK 工具和技术快速排除故障、调试和分析并发应用程序,在发布的 Spring Boot 3.1 中可用。作为 Spring 开发者,了解虚拟线程的概念并理解它们在开发过程中的重要性非常关键。
如何使用虚拟线程Java 版本选择Java 19 中引入的虚拟线程非常易于使用,笔者使用的 Mac M1 系列,这里选择 Azul Zulu 发行版 20.30.11 版本[1]
创建测试项目使用 Spring Initializer 或 IDE 创建项目。添加 spring-web 依赖项并添加元数据。(注意版本选择 SpringBoot 3.1 ,Java 20)
开启虚拟线程功能默认情况下, Java19 的虚拟线程功能是禁用状态的,需要通过相关 maven 编译配置开启。
通过配置 bean 启用虚拟线程org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-compiler-plugin --enable-preview
@Bean TomcatProtocolHandlerCustomizer>threadExecutorCustomizer() { return protocolHandler ->protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor()); }
这个 Bean 是一个自定义的 Tomcat 协议处理器,负责处理 Spring Boot 应用程序中传入的请求。这个自定义程序的目的是配置协议处理器使用的执行器。
在 threadExecutorCustomizer 方法内部,使用 Lambda 表达式来自定义协议处理器。protocolHandler 参数代表正在自定义的 Tomcat 协议处理器的实例。
在 Lambda 表达式中,调用 protocolHandler 对象的 setExecutor() 方法,用于为协议处理器设置执行器。执行器负责执行任务,例如处理传入的请求。
在这种情况下,使用 Executors.newVirtualThreadPerTaskExecutor() 方法创建一个新的使用虚拟线程的执行器。虚拟线程是轻量级线程,可以在单个操作系统线程中并发执行任务。这意味着可以同时执行多个任务,提高性能和资源利用率。
增加测试端点@Slf4j@RequestMapping@RestControllerpublic class DemoController { @GetMapping("/") public String demo() { try { TimeUnit.MILLISECONDS.sleep(300); } catch (InterruptedException e) { log.error(e.getMessage()); } return "Current Thread Name: " + Thread.currentThread(); }}上手使用
我们可以通过 Thread.currentThread() API 获取当前请求线程的元信息,以判断虚拟线程是否已经正确开启。
性能测试对比100 线程测试不开启虚拟线程开启虚拟线程300 线程测试不开启虚拟线程开启虚拟线程500 线程测试不开启虚拟线程开启虚拟线程图表输出总结通过以上我们发现,在处理阻塞操作时,虚拟线程特别有益。随着并发请求数量的增加,虚拟线程的性能提升越来越明显。上述测试都是在未对 Spring Boot 项目进行调优和优化的情况下进行的。
参考资料[1]Azul Zulu 发行版 20.30.11 版本: https://www.azul.com/downloads/?version=java-20-sts&os=macos&architecture=arm-64-bit&package=jdk#zulu
标签:
推荐文章
- 全球播报:性能提升 200% !SpringBoot 虚拟线程来了
- 辽宁营口一钢铁厂发生烫伤事故,造成4人死亡5人受伤
- 罗马诺:吉达国民和利雅得胜利有意那不勒斯中场洛博特卡 每日资讯
- 心疼的近义词是什么_心疼的近义词有哪些呢 世界快看
- BRTV纪实科教《一师亦友》用灵魂影响灵魂——对话戒毒一线女警李娜
- 2023年6月20日美元拆借加权成交利率下午价格_今日热文
- 签下了!湖人连签4人!恭喜勇士有内线了 要闻
- 即时看!合并同类项教学视频(合并同类项)
- 香泡能吃吗 香泡_天天热资讯
- 甲骨文创始人行使期权后抛售股票获利4.8亿美元 焦点精选
- 环球微头条丨突发跳水!28万股民跌懵
- 市人大常委会视察市退役军人事务局“八五”普法工作
- 环球讯息:mc我的世界_巴哈我的世界
- 爱帝宫:受托人根据股份奖励计划购买68万股股份
- 新资讯:19家重庆在港上市公司去年赚376亿元 龙湖集团净利润第一
- 今日观点!箱梁图片双线并置简支箱梁图片
- 播报:手机qq空间的小游戏玩不了_QQ空间所有游戏打不开怎么办
- 豪组三巨头后,绿军和掘金的阵容对比,双方的差距一目了然 环球观天下
- 美、布两油持续下挫 世界看点
- 突发!南海爆发激烈对抗,全国通报嘉奖!若开战已摧毁美国航母!|全球今日讯
- 世界讯息:2023年6月22日山东省芳烃溶剂油价格最新行情预测
- 苹果手表上的相机删除了怎么恢复-环球快资讯
- 【全球独家】东南防滑故障灯亮(dnf红狗最新加点)
- 诸城市永辉乡间圆满承接山东省实验小学“传承红色基因,探索恐龙奥秘”研学旅行
- 当AI绘图“出格”到擦边球游戏丨触乐
- 世界新资讯:V观财报|索菱股份收关注函:通过虚假债务豁免规避退市?
- 赵薇歌曲大全部歌曲船(赵薇歌曲大全) 焦点滚动
- 内容正在升级改造,请稍后再试!
- 儋州市首届东坡玉蕊文化节开幕 招商引资助力乡村振兴 天天快播报
- 热点聚焦:俄媒:南非执政党秘书长称南非期待普京出席金砖峰会,正尽力解决问题
- 粽叶等成“必买单品” 你的端午节购物清单里有些啥?
- 当前热议!windows98歌词_windows9
- 震撼!中国人的赛龙舟有多燃
- 油压机压下去不上来怎么回事_油压机压力不足怎么修
- 【世界聚看点】实力和路飞齐平的超新星有三位,基德最有前途,乌尔基是个谜
- 信息:司马迁为什么会受到宫刑(司马迁是被谁罚宫刑的)
- 当前信息:十万部冷知识:端午节可以说快乐?
- 别怀疑,你的品牌正落入增长陷阱_环球关注
- 省商务厅厅长陈涛来溧调研
- 16孩子叛逆期如何教育_老师如何教育叛逆期的孩子
- 新沂市教育局官网_新沂市教育局_视讯
- 美股开盘丨三大指数集体低开 “蔚小理”逆市走高
- 天天快报!意媒:西汉姆无意外租斯卡马卡,罗马关注莫拉塔并寻求租借他
- 华晨汽车重整方案最终敲定!
- 泰坦军团C49SHC:让张雪峰要“放个清明上河图当桌面”的新装备是什么?
- 一件让脑子变傻的事 你可能每天都在干!尤其夏天
- 佩斯科夫:俄方认为目前不具备延长黑海港口农产品外运协议的前提条件
- 天天微资讯!华润燃气(01193.HK)6月21日收盘跌1.25%,主力资金净流入247.81万港元
- 天邦食品股东户数减少764户,户均持股6.5万元
- finereport官网 环球今热点
- 包粽子 制香囊 拼搭龙舟 石家庄市各社区开展丰富多彩的端午节活动
- 福建漳州:系列宣讲提升公众应急避险和自救能力
- 马卡:被指控种族歧视维尼修斯的18岁球迷辩称当时在挠腋窝
- 颜真卿的故事20字_颜真卿的故事
X 关闭
最新资讯
- 曼德勒海湾酒店(关于曼德勒海湾酒店介绍) 天天短讯
- 北向资金昨日净买入17.42亿元,电网设备净买入金额超64亿(名单) 世界报资讯
- 杭州建德洋溪街道:打好迎亚运环境整治攻坚战,营造美丽整洁洋溪 世界观速讯
- 2023内蒙古计算机二级报名入口官网
- 国新能源:6月20日融资买入1177.42万元,融资融券余额2.07亿元
- 连续15年跻身总决赛!国产运动品牌竞逐NBA代言人
- 美股三大指数集体收跌 天天看热讯
- 世界微头条丨3、如何认识戊戌维新运动的意义和失败的原因、教训?(如何认识戊戌维新运动的意义和失败的原因和教训)
- WhatsApp的新垃圾邮件拦截器提醒我在我的iPhone上激活静音未知呼叫者|每日视讯
- 电影《不虚此行》首曝长预告 胡歌书写人间温暖
- 焦点!2023全球数字经济大会精品主题展即将开幕,5大亮点值得期待
- 虚假发货定义标准(虚假发货定义)
- 环球快报:鲛端桥墩_关于鲛端桥墩简述
- 备份数据库的sql语句_备份数据表的sql语句
- 简单介绍一下KZ谭丁根的演唱歌曲_天天精选
- 今日锂电材料报价多数下跌 电池级碳酸锂跌500元/吨
- 艾滋病阻断药多少小时内吃有效_亚洲妹中文怕怕 每日短讯
- 厦门南普陀寺开放时间及门票 天天信息
- 暴雨蓝色预警!四川南部等地部分地区有大到暴雨
- 就在刚刚!大降息!泰州房贷利率全面下调!
- 黄磊,人到52岁,别太贪心了!
- 集美区政协举办高校委员座谈协商会
- 微速讯:内蒙古鄂尔多斯年产销煤炭8.5亿吨 现代煤化工产能2000万吨
- 博杰股份:英伟达后续会是非常重要的大客户 公司会持续跟进在服务器算力领域里的机会|天天精选
- 世界快资讯丨教育部公布“2023年高考网上咨询周”时间安排
- 上海黄金交易所黄金T+D 6月20日(周二)早盘盘初下跌0.07%报449.95元/克, 白银T+D 下跌0.25%报5,614.0元/千克|天天快资讯
- 当前最新:比利时内讧!皇马门神无缘队长后“罢赛” 炮轰主帅:他撒谎了
- 安逸四川日历海报|犍为栀子花开:清香萦绕在心怀-每日速递
- 环球实时:啄食,和蔼,恭敬,质朴,的拼音意思_云霄 倘若 鉴赏 啄食 和蔼 恭敬 质朴的拼音怎么读
- 全球最新:“年薪百万的大厂精英,跳到小厂成了万人嫌”
- 环球热讯:巴菲特继续加仓!
- 每日报道:2020年凯迪拉克XT6看起来像金属一样强悍
- 世界热资讯!凌海市气象局发布大风蓝色预警【Ⅳ级/一般】【2023-06-19】
- 端午假期北京各公园将推出69项特色文化活动 百事通
- 去有风的地方,听一曲中国古典音乐的“活化石”-每日快看
- 冬奥会有哪些比赛项目?_冬奥会有哪些比赛项目-环球速递
- 小鱼大心作品集下载 小鱼大心作品
- 上日下成念什么字_上日下成念什么 环球新资讯
- 股票分红是什么?为什么在分红前要把股票卖掉?
- 成都金牛区西安路美食街消费券怎么用?_世界微资讯
- 当前热门:广州银航企业咨询有限公司开业
- CBA重要转会完成!顶级后卫加盟上海男篮,全力冲击总冠军
- 虚拟主播中之人招募|全球观热点
- 消息!网贷逾期了暂时还不上怎么?停息挂账自己怎么去申请?
- 组图|滕州:防汛应急演练 当前短讯
- 环球滚动:明起三天,黄石人请提前一小时出门!
- 每日讯息!公众号主体涉嫌恶意注册怎么解决 qq恶意注册怎么解决
- 横山县天云煤矿有限公司 抢抓黄金施工期 推动建设加速跑
- 根据孙甘露同名长篇小说改编,电视剧《千里江山图》将展开苍茫历史画卷
- 世界简讯:罗博特科(300757):该股换手率大于8%(06-19)
X 关闭