2025 年了,你们用上 Virtual Threads 了吗

1 天前
 ljzxloaf
限企业项目,生产环境。

用过的彦祖分享下使用方法、性能收益、踩过的坑啥的
1235 次点击
所在节点    Java
2 条回复
sagaxu
1 天前
https://openjdk.org/jeps/444#Pinning

There are two scenarios in which a virtual thread cannot be unmounted during blocking operations because it is pinned to its carrier:

When it executes code inside a synchronized block or method, or
When it executes a native method or a foreign function.

第一个坑: https://openjdk.org/jeps/491 ,首个解决此问题的 JDK LTS 版本是 25 。
第二个坑:目前没有办法根治,知名库如 netty 的 native 代码应该能比较快发现和解决。

所以还是再等等吧,反正已经用上 Kotlin 协程了,等 virtual threads 成熟了拿来当阻塞 IO 的 dispatcher 用
Executors.newVirtualThreadPerTaskExecutor().asCoroutineDispatcher()
niubiman
1 天前
java 真是遥遥领先

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1103337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX