当前位置:首页 > 每日看点 > 正文内容

jdk21的虚拟线程会促进国内公司升级速度吗?还是说万年不变的你发任你发,我用java8?

卡卷网11个月前 (01-17)每日看点156

暂时还不会大规模转21+,估计还要再等2到3年,拭目以待。


21最大的更新就是loom结束了preview正式落地,将一众异步库扫进历史的垃圾桶。

从这个版本开始,做中间件时,netty不再是唯一可选项了。甚至可以说,大多数场景扔掉netty,在保证性能的同时,还能让代码更好维护。

现在oracle helidon提供了许多常用组件,比如http、grpc等,写一些服务已经没啥问题了。
可能很多人还不知道Helidon是什么,给大伙一个直观的认识:Helidon SE可以用来对标Vert.x,Helidon MP可以用来对标Quarkus。

对于老servlet代码,改一个tomcat版本和配置就能无缝切换到loom上,也方便了各大服务升级。

2、3年前go在国内大量增长的时候,有不少业务老大跟风,吭哧吭哧地把java的业务重构成go,有的业务哪怕现在都还没完全重构完,结果现在loom出来了。
不知道当初那些“架构师”、“CTO”会不会被老板骂死。。。(比较一下升级21和用go重写的成本差别~)(不过他们可能也是无奈,毕竟团队可能不重写就没事干了)

loom出来后,再加上native-image,后面也不会再有什么“用go重构java”的需求了,就是可能对打工人不太友好(毕竟升级不会有那么高的人力需求)
(可能很多人知道native-image但不知道tracing agent,这里顺带提一嘴:正常代码 + agent + 放到线上跑2个月 = 自动生成配置文件无缝升级)


目前loom还有一些问题:

有一些历史遗留问题,还需再等各JDBC实现把synchronized删掉改成lock才能发挥最大性能。不过社区考虑的比较多,如果等不及自己统一改一把也不是什么难事。

另外CarrierThreadLocal并没有暴露出来,所以绝大多数的库为了用户友好性,都不会强行add-opens使用它。但是我们可以用一个简单的javaagent做一把hack,把所有有需要的ThreadLocal都改成CarrierThreadLocal(可能还要改一把VirtualThread检查,因为很多库加了个检查然后选择不使用ThreadLocal)。


除开loom,另一个大事件是PanamaAPI基本稳定。在22还有一个API小改动,用反射规避下就能兼容,看起来不会再大改了。

Panama让upcall成为真正可用的特性。之前JNI upcall有点太慢了,而Panama upcall快了几倍,具体数据,几年前网上就有很多人放出来过了,知乎站内就能搜到。
downcall性能其实JNI也挺快的。Panama在downcall上的意义在于,可以省略JNI那样的wrapper,直接加载动态链接库以及根据symbol取函数地址。少一个wrapper可以少一次函数调用。
Panama也给给内存结构做了标准化。现在JVM其实也可以算是支持“结构体”、“union”、“值类型”了。

关于Panama这条线,可以关注下我的Panama Native Interface,是一个代码生成器,工作过程类似于javac -h

vproxy-tools/panama-native-interface: Code Generator for Java and C, making it easier to use Java Panama and Graal Native Image (github.com)

目前我已基于此搞了luamsquic,一部分posix api,一部分dpdk api的Java接入。项目每个功能都有测试用例,而且因为是代码生成器,可以直接从源码层面看到一切细节,可放心使用~


有些答主,比如 @Ivony 说虚拟线程是“语法糖”,说明根本没了解过Java21到底改了什么。也不知道哪来的自信强答各种自己不懂的领域的问题。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/9707.html

分享给朋友:

相关文章

创业:集思广益并完善您的商业理念

用史蒂夫乔布斯的话来说,“做伟大工作的唯一方法就是热爱你所做的事情。开始自己的事业是迈向自己喜欢的工作的一步。但是,从形成想法到创建商业网站,在您深入研究之前,需要考虑几个基本步骤和问题:您要解决什么问题?您的目标受众是谁?您的产品或服务与...

电视参数哪个最重要?

电视参数哪个最重要?

在选择智能电视时,面板类型是一个关键因素。IPS面板以其宽广的视角和出色的色彩还原能力受到青睐,尤其适合日常观看和游戏。尽管可能会有轻微的漏光,但在大多数情况下,这并不影响使用体验。相比之下,VA面板提供更高的对比度和更深的黑色,增强了沉浸...

网易云音乐里有哪些打动你的评论?

1.“如果我被强奸了,有人说我会失去贞操。”“我怎么失去贞操了呢?” “我的贞操不在我的阴道里。”“失去贞操的是强奸犯,而不是被强奸的人。”2.但要记得那年海边的烟火,我们不拘一格 ,嘲笑过生活。………网易云热评《这样就很好》3.“ 我们在...

抖音和快手最大的区别是什么?

1、目标人群定位不同抖音:一二线城市,占比52%,大专学历以上,女性偏多。抖音以年轻群体居多。快手:三四线城市,占比64%,高中学历以下,男女更均衡。快手所覆盖的年龄段范围更广。2、内容创作的形式和深度不同抖音:偏深层,内容的装饰及表达更高...

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在讨论服务网格之前,先理解一下为什么我们需要它。现代微服务架构意味着将应用拆分为多个小型、独立的服务,这些服务可以独立开发、部署和扩展。然而,服务之间的通信和管理成了巨大的挑战,例如如何保证安全的通信、负载均衡、监控与可观测性等。服务网格...

如何进行 Elasticsearch 调优实践?

如何进行 Elasticsearch 调优实践?

面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s ,坑爹了。第一次搜索的...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。