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

java19 ga

  •  
  •   yazinnnn · 2022-09-21 08:38:04 +08:00 · 4522 次点击
    这是一个创建于 799 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://jdk.java.net/19/

    Features

    405: Record Patterns (Preview)

    422: Linux/RISC-V Port

    424: Foreign Function & Memory API (Preview)

    425: Virtual Threads (Preview)

    426: Vector API (Fourth Incubator)

    427: Pattern Matching for switch (Third Preview)

    428: Structured Concurrency (Incubator)

    万众(java boy)瞩目的 loom preview 了

    33 条回复    2022-10-11 19:06:31 +08:00
    nba2k9
        1
    nba2k9  
       2022-09-21 08:39:11 +08:00
    IDEA 是不是还没支持?
    kalman03
        2
    kalman03  
       2022-09-21 08:41:52 +08:00
    sunwei0325
        3
    sunwei0325  
       2022-09-21 08:45:29 +08:00 via iPhone
    @kalman03 这个只支持 windows? 和 sdkman 比起来有什么优势?
    a33291
        4
    a33291  
       2022-09-21 08:50:31 +08:00
    Virtual Threads 这个和 go 的 goroutine 是不是类似?

    PS:
    感觉 java 和 c#重合度越来越高了 🤣
    kalman03
        5
    kalman03  
       2022-09-21 08:51:08 +08:00
    @sunwei0325 可视化界面,限 windows
    ourslay
        6
    ourslay  
       2022-09-21 08:56:52 +08:00 via iPhone
    @nba2k9 已经支持了
    Dragonphy
        7
    Dragonphy  
       2022-09-21 09:06:23 +08:00
    协程?
    lmshl
        8
    lmshl  
       2022-09-21 09:47:32 +08:00
    @a33291 区别很大,go 那是无栈协程,java 实现的是有栈协程
    monkeyWie
        9
    monkeyWie  
       2022-09-21 09:55:42 +08:00
    期待 loom 转正的那天
    MakHoCheung
        10
    MakHoCheung  
       2022-09-21 10:03:06 +08:00
    没有理由去用科特琳了
    a33291
        11
    a33291  
       2022-09-21 10:11:51 +08:00
    @lmshl 嗯,不过好像说反了?

    看起来 Virtual Threads 和 C#的 Task 就是同一类,C#使用 await/async 关键字简化这个过程,不知道 java 是否也新增了关键字
    fkdtz
        12
    fkdtz  
       2022-09-21 10:14:06 +08:00
    @lmshl go 那是有栈
    SuperManNoPain
        13
    SuperManNoPain  
       2022-09-21 10:18:21 +08:00
    还得是 spring 带头升级版本,不然社区都没动静 😂
    Bazingal
        14
    Bazingal  
       2022-09-21 10:19:10 +08:00
    java 已经落后太多了,步子完全可以再大点,扣扣嗖嗖的抄都不能痛快点
    zed1018
        15
    zed1018  
       2022-09-21 10:26:59 +08:00
    @MakHoCheung 你恰恰说反了,应该是更有理由用 kotlin 了,async{}配合 vthread 简直绝了
    dddd1919
        16
    dddd1919  
       2022-09-21 10:33:41 +08:00
    java8 yyds
    dqzcwxb
        17
    dqzcwxb  
       2022-09-21 10:51:17 +08:00
    loom 是对称协程还是非对称协程,有大佬知道吗
    Leviathann
        18
    Leviathann  
       2022-09-21 10:52:20 +08:00
    @lmshl
    @a33291
    go 和 virtual thread 是有栈,java virtual thread 可以自行指定调度器
    js c# kotlin 这类基于 cps 的是无栈所以需要 async await / suspend 关键字协助编译器
    Jirajine
        19
    Jirajine  
       2022-09-21 11:04:22 +08:00
    Project Wakefield 提都没提,果然优先级很低啊。
    zoharSoul
        21
    zoharSoul  
       2022-09-21 11:11:07 +08:00
    @lmshl #8 go 是有栈协程啊, 无栈协程是 kotlin 那种
    liprais
        22
    liprais  
       2022-09-21 11:15:40 +08:00 via iPhone   ❤️ 1
    做 csharp 咋这么喜欢碰瓷
    lmshl
        23
    lmshl  
       2022-09-21 11:31:46 +08:00
    @zoharSoul
    @Leviathann
    @fkdtz
    @a33291
    谢谢提醒,是我胡说八道了😂,确实不了解 Go
    zmal
        24
    zmal  
       2022-09-21 11:41:48 +08:00
    kotlin 协程和 JEP425 这个还差挺远的
    MakHoCheung
        25
    MakHoCheung  
       2022-09-21 13:12:44 +08:00
    @zed1018 看 18 楼,virtual thread 遇到阻塞自行挂起,根本不需要 async await / suspend 关键字。你说跟这些关键字配合我就觉得奇怪了,当然我不熟 Kotlin Coroutines ,可能它后续会改底层吧。
    fisherwei
        26
    fisherwei  
       2022-09-21 16:13:10 +08:00
    感觉 java8 能再战 10 年
    gy123
        27
    gy123  
       2022-09-21 16:14:41 +08:00
    ychost
        28
    ychost  
       2022-09-26 22:34:27 +08:00
    其实 AliJDK 早就支持协程了,叫 Wisp2 感兴趣可以搜下,对标 Loom 的,其实对性能提升并没有想象中那么好,如果还是以 BIO 的方式编程,只会有些许提升,想要更大幅度提升还是得使用 NIO 的回调代码
    byte10
        29
    byte10  
       2022-09-28 09:37:07 +08:00
    @ychost 实际上 NIO 解决的是无视 IO 时间。如果是 BIO 的话就需要增加大量线程来解决,然后就会遇到性能瓶颈了。而协程就只是解决了异步转同步编程,性能可能是比原来的 NIO 有所损失,应该很低,也许是 1%-5% ,平摊到业务代码中就基本忽略不计了
    dreamlike
        30
    dreamlike  
       2022-10-05 15:48:17 +08:00 via Android
    Panama 是这里面我最喜欢的
    配合 jextract 可以自己一行 c 都不用写就可以接入各种 native 库,比如说自己补齐 loom 没加入的 io_uring 支持
    pH
        31
    pH  
       2022-10-07 21:49:21 +08:00
    @ychost 这么感人吗= = 回调方式的代码实在是太恶心了
    Aresxue
        32
    Aresxue  
       2022-10-08 11:09:20 +08:00
    @ychost dragonwell8 中的实现还是非常重的,loom 其实不是传统的协程更应该叫纤程,之前听梁希他们分享过他们实现的协程,他自己也说会比较重,主要还是因为他们最开始做的时候 loom 还不存在所以想自己做一些开创性的东西,不过到业务系统层面除非是阿里那种规模的集群其它的大差不差了
    ychost
        33
    ychost  
       2022-10-11 19:06:31 +08:00
    @pH 所以用 Kotlin ,我新项目用的纯 Java 写的 reactive ,大概 2W 行,现在新功能全用 Kotlin 桥接了,美滋滋
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5208 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.