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

2024-02-01 21:48:18 +08:00
 hepin1989

我说一下我目前的数据:

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

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

6386 次点击
所在节点    程序员
53 条回复
dbpe
2024-02-02 08:46:45 +08:00
Java 的虚拟线程。。。emmm 。。。哎。。。

什么时候可以像 kt 一样。。await 直接用。。
BeiChuanAlex
2024-02-02 08:54:56 +08:00
协程?

现在还在用 jdk 8 的路过~~~~~~~~~~~
Dragonphy
2024-02-02 09:00:55 +08:00
@lmshl 你的图漏信息了
Dragonphy
2024-02-02 09:03:07 +08:00
Java 21 虚拟线程的陷阱:我们在 TPC-C for PostgreSQL 中遭遇死锁
https://mp.weixin.qq.com/s/BfDd08j2jQwIOSaxf_mgww
zed1018
2024-02-02 09:14:07 +08:00
@kkwa56188 请问不升级等到 CVE 高风险漏洞的时候一下升炸十天半个月都 migrate 不完怎么办。怎么老是有这种思想,breaking changes 应该是早发现早治疗,一定要等债务大到爆炸才解决,是想着反正我就干一两年,相信后人的智慧吗?
cloudyplain
2024-02-02 09:21:18 +08:00
个人感觉:虚拟线程最大好处是对编程友好(特别是异步,不借助语法糖实现 await),性能方面:对异步(netty 、vert.x)甚至可能下降,同步也不见得有多少显著提升(一般是业务代码占大头,helloworld 除外)
yooomu
2024-02-02 09:27:41 +08:00
在一个数据迁移的项目下试用了一下,高度 IO 密集型,使用传统线程池并发根本上不去,CPU 占用过山车。换用虚拟线程,CPU 稳定吃满,迁移效率大幅提升
Goooooos
2024-02-02 09:29:00 +08:00
percent 缩写一般是 pct ,建议别乱缩写,用%谁都看得懂
ljsh093
2024-02-02 09:33:27 +08:00
@lmshl #7 公网数据库 ip 也往外发?
ychost
2024-02-02 09:34:39 +08:00
虚拟线程对异步本来就没有提升,可能还会下降,对同步代码提升很大
jjianwen68
2024-02-02 09:49:21 +08:00
原本多线程的程序,话说要怎么用虚拟线程,在每个线程耗时处理的地方再开虚拟现场处理,进一步提升效率吗
liouop
2024-02-02 10:22:40 +08:00
目前项目还在 jdk11 kotlin1.9 。。想知道大家的虚拟线程的使用场景都是用来做什么 并发请求数据、数据库 or 计算处理?
wocanmei
2024-02-02 10:41:35 +08:00
感觉内存和 cpu 优化不明显,用处不大吧
wanguorui123
2024-02-02 10:47:30 +08:00
大部分情况下瓶颈在数据库
yidinghe
2024-02-02 10:48:53 +08:00
虚拟线程的好处,一是降低操作系统负担,方便虚拟机自行根据硬件资源调整;二是因为减少了异步代码,可以更方便的使用 ThreadLocal 等工具。总之,它在设计编码方面带来的负担降低是非常显著的。
zhady009
2024-02-02 12:07:59 +08:00
虚拟线程不会让你的代码变快而且还会变慢些,主要还是能提供吞吐量 CPU 利用率,而且代码风格不用变还是同步的写法
UNCLOSABLE
2024-02-02 16:12:43 +08:00
@yooomu 哦?能不能描述以下实现方案啊,感觉很有用啊
yooomu
2024-02-02 17:02:25 +08:00
@UNCLOSABLE 就是把原来的使用传统线程池的地方换成调用 Executors.newVirtualThreadPerTaskExecutor()使用虚拟线程执行任务,然后使用 Semaphore 来控制并发量,使用起来和传统线程没多大区别。因为需要从另一个服务器拉数据,一开始没控制并发量,直接把那台服务器干崩了,可见虚拟线程还是挺猛的
zjcoding
2024-02-02 17:17:06 +08:00
@lmshl #7
是担心 V 友们黑不掉你的数据库吗
Paracosm
2024-02-02 17:25:54 +08:00
@lmshl ip 没遮

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

https://ex.noerr.eu.org/t/1013518

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

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

© 2021 V2EX