V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
javak
V2EX  ›  Java

曾经我以为 Java21 的虚拟线程是银弹...

  •  
  •   javak · 135 天前 · 3420 次点击
    这是一个创建于 135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    曾经我以为 Java21 的虚拟线程是银弹... 结果发现现实引力太重,根本飞不起来,要飞必须大量的库需要适配,比如把 synchronized 用的地方改掉。

    再比如,最基本的 MySQL 的 JDBC 就还没适配。 https://github.com/mysql/mysql-connector-j/pull/91

    路漫漫啊

    12 条回复    2023-12-22 23:35:51 +08:00
    tomatocici2333
        1
    tomatocici2333  
       135 天前
    没有银弹
    idealhs
        2
    idealhs  
       135 天前
    和异步一样,底层需要具有异步实现。不过虚拟线程从语法层面上看起来就和同步方法没有任何区别了,异步还有颜色函数和传染性。
    iPisces77
        3
    iPisces77  
       135 天前
    单独是 mysql 自己驱动不支持罢了...
    pg,oracle 都支持了的
    yazinnnn0
        4
    yazinnnn0  
       135 天前
    用 mariadb 的驱动
    fgwmlhdkkkw
        5
    fgwmlhdkkkw  
       135 天前 via Android
    但是你真的可以建设它!
    Aresxue
        6
    Aresxue  
       135 天前
    软件工程没有银弹。
    synchronized 是可以在后续被 JVM 优化掉的,而且实在不行替换成 ReentrantLock 的操作也还是比较简单的。ThreadLocal 才麻烦,不过 scoped value 成熟后应该也可以搞的定。
    就是现阶段替换虚拟线程的成本和收益不明显而已,但如果是一个长远规划的项目早做早好,小项目玩玩也可以。
    kenvix
        7
    kenvix  
       135 天前
    未来仍可期,Loom 仍然还是一个很年轻的东西,而且这方面的优化在理论上也是可行的只是比较复杂,等下一个 LTS 的时候或许会好很多
    chendy
        8
    chendy  
       135 天前
    其实吧,除非资源真的很紧张或者规模真的很大,这玩意约等于没用
    先蹲个三五年再说吧
    chirsgod
        9
    chirsgod  
       134 天前
    上次就看知乎的一个人分析,等到 java25 结构化并发的东西加上周围配套组件都适配后,才是曙光到来。现在是黎明前最后的黑暗了。
    sam384sp4
        10
    sam384sp4  
       134 天前
    上 c#把,异步生态很完善了
    dddys
        11
    dddys  
       132 天前
    给 jdbc 提 pr
    codingmiao
        12
    codingmiao  
       127 天前
    我这有个屎山代码,大致业务是处理 kafka 的数据,来一条数据就拉一个线程去处理,需要保证一致性的地方就在那 Thread.sleep 。。然后今年数据量翻了好几翻,所以,这屎山需要的线程数达到了四五千,我很想去重构它,但是堆积的业务太多根本改不动,还好虚拟线程来了,只要把起线程的地方改成起虚拟线程就好了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1035 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:01 · PVG 07:01 · LAX 16:01 · JFK 19:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.