大家 Java 21 的 虚拟线程用起来了吗?

2024 年 2 月 1 日
 hepin1989

我说一下我目前的数据:

线程数下降 1200+ 内存下降:5pt CPU 下降:10pt

感觉并没有 N 倍提升,是不是因为我的应用本身就是大部分都是 异步代码的 原因?

7653 次点击
所在节点    程序员
53 条回复
wbd31
2024 年 2 月 1 日
pt 是什么单位?
hepin1989
2024 年 2 月 1 日
@wbd31 你好,就是百分比,比如原来是 80%, 改造后 70%。
IceTech
2024 年 2 月 1 日
可能是在说 percent?
ikas
2024 年 2 月 1 日
虚拟线程最大优势不就是使用传统编程模式实现异步一样的效率么?
cabing
2024 年 2 月 1 日
你的版本升级好快了啊。好多项目都是 java8😂java15 都没有
hepin1989
2024 年 2 月 1 日
@ikas 我觉得并没有,日常还是写 Flux/Pekko Stream 快一点,而且我在 ConcurrentHashMap 上遇到了 pin Carrier thread 。无解,如果改成全异步的 cache ,反而 CPU 的收益只有 5 个百分点了。
lmshl
2024 年 2 月 1 日
https://imgur.com/a/ZyMpzTR
在用了在用了,我现在就写 vt
300
2024 年 2 月 1 日
第一次见到百分比用 pt 表示…这是缩写还是扩写了%
kkwa56188
2024 年 2 月 1 日
If it ain't broke, don't fix it.
如果是生产环境:
非必要不更新,
非必要不升级,
非必要不用新 feature.
跑的好好的东西, 能不动就不动, 一个小版本号都不动.

如果自己折腾, 那随意.
BBCCBB
2024 年 2 月 1 日
你本来就是异步代码, 提升空间不大.

而且 jdk21 还没 ScopedValue, 不完善.
ikas
2024 年 2 月 1 日
锁的问题需要库,框架适配
毕竟虚拟线程 21 才正式发布,锁与 ThreadLocal 是上生产的最大阻碍

我们基础框架已经升级到了 21,几个项目陆续也升级了,但是虚拟线程只在一个新项目测试版本中开启..
ByteCat
2024 年 2 月 1 日
项目都用 Kotlin 写的……换到 Java21 有用吗
gongxuanzhang
2024 年 2 月 2 日
我觉得线程池换成虚拟线程性能优化是 0
如果你是 new 出来的线程倒是能优化..
hepin1989
2024 年 2 月 2 日
@ByteCat 有啊,虚拟机的改进还是不小的。不过语法就是抄袭 Kotlin 的,提鞋都不配。
hepin1989
2024 年 2 月 2 日
@BBCCBB 是的,目前我也是这样认为的。
G2bN4dbX9J3ncp0r
2024 年 2 月 2 日
@kkwa56188 总有一天没法维护
hepin1989
2024 年 2 月 2 日
@lidashuang 改动很小的,不超过 30 行代码老师。
tramm
2024 年 2 月 2 日
21 都没升呢
echo1937
2024 年 2 月 2 日
@gongxuanzhang 结构化并发实装前,确实少些个意思。即便如此,虚拟线程比线程池灵活,而且即使是线程池,也有 corePoolSize/maximumPoolSize 等问题,该 new 的时候还会 new ,总之还是乐见于多一种方式的。
dbpe
2024 年 2 月 2 日
@ikas 了解下 JEP 453 Structural Concurrency 。。

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

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

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

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

© 2021 V2EX