首页 > 社交 > 科普中国

支持JDK19虚拟线程的web框架之:兴风作浪的ThreadLocal

常驻编辑 科普中国 2022-11-14 线程   反应式   框架   兴风作浪   高效   下图   变量   模型   对象   代码   官方
,这个范围就更加灵活了,不过这个JEP当前的状态还很早期,如下图,还在提案阶段,这要是跳票了或者被否了,那我博客不就白写了?就此打住吧,我不能再研究了

4XR拜客生活常识网

  • 搞清楚以上问题后,自己的八卦之心就控制不住了:既然虚拟线程上的ThreadLocal问题这么严重,放眼Java世界的生态这么繁荣,那么多框架和库,那么...你们说
  1. 有没有哪个倒霉蛋掉进这个坑里去?
  2. 惨不惨?
  3. 从坑里爬出来没有?
  • 你别说,还真有...

4XR拜客生活常识网

踩坑勇士quarkus

  • 这位踩坑勇士,就是贯穿整个《支持JDK19虚拟线程的web框架》系列的quarkus,来吧,一起围观quarkus踩坑,顺便学点知识
  • 先看quarkus官方文档《virtual-threads.adoc》,如下图

4XR拜客生活常识网

  • 我对上述内容的理解:
  1. quarkus的人发现:传统线程池模式改用虚拟线程后,性能提升明显,但是反应式框架改用虚拟线程后的提升并不明显,而且还会带来内存消耗过大的问题(看过前面ThreadLocal分析的您,此刻应该猜到原因了了,嘿嘿,您猜的没错)
  2. 如果您的应用对内存有较严要求,quarkus官方建议您继续坚持(stick)使用反应式框架(这话中透露出浓浓的无可奈何,别催了,搞不定...)
  • 接下来官方就要甩锅了,有趣的是,这次接锅的并非JDK,而是大名鼎鼎的...Netty

Netty的问题

  • 为什么是Netty接锅呢?
  • 首先,Netty使用了Reactor线程模型,而Netty Reactor的核心是Event Loop,下图来自《Netty in Action》,是处理web请求的内部架构图,

4XR拜客生活常识网

  • 那么,应该有多少个EventLoop线程呢?下图是Netty源码,默认值是CPU核数的2倍,看得出这是个很保守的数字

相关阅读:

  • 集合篇
  • 华硕天选3游戏本
  • Spring
  • 管理订单状态,该上状态机吗?
  • 从国产大飞机C919上的国产GPU看GPU的架构设计
  • 从20s优化到500ms,我用了这三招
  • MTT
  • 迷失Stray
  • 买新不买旧
  • java面试题整理《多线程篇》七
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。