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

JDK19 发布了,终于迎来了虚拟线程

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

    Virtual Threads 的 Preview 终于来了,这个特性感觉会在下个 lts 也就是 21 稳定,让大部分依赖库,特别是服务器相关的库都升级到 21 去,这下你们该弃用 8 了吧( oracle 奸笑)~

    27 条回复    2022-09-23 23:05:22 +08:00
    yhvictor
        1
    yhvictor  
       75 天前 via iPhone
    fiber 虽然比线程简单点,但我估计没需求的没需求,有需求的 thread 迁 fiber 一头包。
    redorblacck886
        2
    redorblacck886  
       75 天前
    然并卵 市面上绝大部分都是 jdk8
    Geon97
        3
    Geon97  
       75 天前   ❤️ 4
    或许也可以选择放弃 java
    nekoneko
        4
    nekoneko  
       75 天前
    @redorblacck886 #2 我都不知道这 j8 什么时候能推到 j17, 自己用 j17 真的香, 在公司用 j8 难受
    QlanQ
        5
    QlanQ  
       75 天前   ❤️ 1
    影响我用 Java 8 吗?
    bwangel
        6
    bwangel  
       75 天前
    https://weibo.com/1773116334/M6CGfoyU0

    看到某大佬写了一个测试,貌似还有待提升。
    uiosun
        7
    uiosun  
       75 天前
    > 这下你们该弃用 8 了吧

    我们不弃用 8 是因为高版本没优秀的功能吗?私以为这个逻辑不成立
    Leviathann
        8
    Leviathann  
       75 天前
    @uiosun 弃用 8 那当然是因为 spring 不支持 8 了
    chendy
        9
    chendy  
       75 天前
    @bwangel 多线程抢一把锁必然不行啊……把查数据库逻辑换成 Trhead.sleep 效果就非常明显了
    LeegoYih
        10
    LeegoYih  
       75 天前
    https://github.com/ebarlas/project-loom-comparison
    提升还是很明显的,虽然比不过 Go 这种 stackless 的协程

    等下一个 LTS 版本
    Y29tL2gwd2Fy
        11
    Y29tL2gwd2Fy  
       75 天前 via Android
    挺好的
    gankT
        12
    gankT  
       75 天前
    我们公司现在用的还是 8
    Dragonphy
        13
    Dragonphy  
       75 天前
    @nekoneko #4
    详细说说,我感觉没啥区别啊😂
    tomato1111
        14
    tomato1111  
       75 天前 via Android
    换 kotlin 吧要不
    xxfye
        15
    xxfye  
       75 天前
    有什么性能对比的数据吗,比如吞吐量,CPU 占用,内存占用,GC99 时间等。
    对比 Java8 和后续版本的,特别是 Java17 LTS 版本。
    hez2010
        16
    hez2010  
       75 天前   ❤️ 3
    @LeegoYih 虽然但是,Go 的协程是 stackful 的,而 C++、C#、Rust 、Python 的协程才是 stackless 的
    Leviathann
        17
    Leviathann  
       75 天前   ❤️ 1
    @bwangel 现在什么阿猫阿狗都是大佬了?连 jdbc 内部用了 synchronized ,而目前 virtual thread 只支持 Lock 都不知道?
    xxfye
        18
    xxfye  
       75 天前
    @Leviathann 人家后面微博也说了,synchronized 改用 ReentrantLock 实现就行了。
    只能说 preview 是真的 preview ,即使 API 已经完成,标准库还有待改进。
    xxfye
        19
    xxfye  
       75 天前
    Java 是主流语言里第 3 个使用 stackful 协程的。
    Go 自不必说,天生 stackful 更是广受青睐。
    C++过去通过 hack 系统调用方式实现,但由于库的分裂,基本上只能项目内部自嗨使用。
    Java 社区虽然繁荣,但大部分依然围绕于标准库和 spring ,android 周边,是比较容易推进的改造。
    可以说 Java 的协程成败,全看 spring 和 android 的支持程度
    ccppgo
        20
    ccppgo  
       75 天前
    @xxfye java 跟 android 现在关系不怎么样了吧, Android 那边早都 kotlin 了, java 主要还是用于服务端, java 本身的协程成败我怎么觉得跟 Android 有关系也极小
    tomato1111
        21
    tomato1111  
       74 天前 via Android
    @xxfye 安卓对 java 现在有个屁支持,安卓的 jdk 是最残废的。到现在才支持到 jdk11 ,况且你要是要兼容旧版本系统,jdk 新特性还不能拿来用。 这就是为什么谷歌要强推 kotlin 的主要原因,以后 java 跟安卓只会原来越没直接关系。
    wxyrrcj
        22
    wxyrrcj  
       74 天前 via Android   ❤️ 1
    一堆用着 java8 写着 7 的语法
    todorov
        23
    todorov  
       74 天前
    公司主流项目 JDK6 的万年屎山。
    我的苹果本都不能编译,还要安个虚拟机。
    janus77
        24
    janus77  
       74 天前
    最后一句说错了,应该是“这下你们该用 8 了吧”
    cccjh
        25
    cccjh  
       74 天前
    这个是 java 搞了那么多年的 loom 吗
    powerman
        26
    powerman  
       74 天前
    @xxfye #19 只要解决 ThreadLocal 跟 Thread 这层抽象 应该就好了
    hez2010
        27
    hez2010  
       72 天前
    @xxfye 安卓只是遵循 Java 的 ABI 暴露了一系列接口而已,底下根本连 JVM 都不是,别说 Java 19 了,前一阵子才刚刚兼容到 Java 11 ,之前更是万年的 Java 8 兼容。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3269 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.