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

97 天前
 hepin1989

我说一下我目前的数据:

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

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

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

如果自己折腾, 那随意.
BBCCBB
97 天前
你本来就是异步代码, 提升空间不大.

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

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