乐趣区

关于java:劲爆Java-协程要来了

大家好,我是栈长!

咱们都晓得,Java 目前最小的系统调度单元只反对线程,官网是不反对协程的,但能够通过第三方框架实现,预计也很少有人会用吧,多线程就能满足需要。

好消息来了,不久的未来,Java 要开始反对协程了,这真是劲爆音讯啊!!

在 openjdk 的官网上,2021/11/15 这天创立了一个新的个性:

JEP draft: Virtual Threads (Preview)

虚构线程,咱们来看看是什么鬼:

虚构线程是一种老本低廉、轻量级的用户模式的线程实现,它能够充分利用可用硬件,大幅缩小编写、保护和监测高并发利用的工作量。

低成本+轻量级+用户态 ,这一看就是 协程 的定义了。。

咱们都晓得应用线程是要十分注意的,因为线程的创立、销毁都非常耗费系统资源,所以有了线程池,但这还不够,因为线程的数量是无限的,线程会阻塞操作系统线程,无奈尽可能的进步吞吐量。

因为应用线程的老本很高,所以才会有了虚构线程,它是用户态线程,老本是相当低廉的,调度也齐全由用户进行管制(JDK 中的调度器),它同样能够进行阻塞,但不必阻塞操作系统线程,充沛进步了硬件利用率,高并发也上了一个量级,从而实现了高吞吐量。


虚构线程创立形式:

虚构线程是 java.lang.Thread 的一个实现,能够应用 java.lang.Thread.Builder 接口创立,如下所示:

Thread thread = Thread.ofVirtual()
                    .name("javastack")
                    .unstarted(runnable);

也可能会通过一个线程工厂类进行创立:

ThreadFactory factory = Thread.ofVirtual().factory();

并且,能够通过 Thread.isVirtual() 办法判断是否虚构线程。

虚构线程运行的载体必须是线程,同一个线程中能够运行多个虚构线程实例。


目前这还是个草案,预览个性,很多细节并不是很确定,是不是叫协程?或者纤程?还是虚构线程?当初也没有官网的中文材料,叫什么不重要,咱们都晓得的是,Java 中的 “ 协程 ” 它要来了!

有了协程,Java 的并发能力将会再上 N 个台阶……

咱们还是刮目相待吧,目前最新版本是 JDK 17,看它在哪个 JDK 版本中落地,到时候栈长再给大家解读分享,大家能够继续关注公众号 Java 技术栈,公众号第一工夫推送,不要走开哦,多线程教程也写了一堆了,能够在公众号菜单中浏览。

具体细节和后续的的停顿能够参考官网阐明:

https://openjdk.java.net/jeps…

好了,明天的分享就到这里了,前面栈长会分享更多好玩的 Java 技术和最新的技术资讯,关注公众号 Java 技术栈第一工夫推送,我也将支流 Java 面试题和参考答案都整顿好了,在公众号后盾回复关键字 “ 面试 ” 进行刷题。

最初,你感觉 Java 为什么到当初才开始思考协程?欢送留言探讨!

这真是个劲爆好消息,转发、分享给更多 Javaer 小伙伴们吧!

版权申明: 本文系公众号 “Java 技术栈 ” 原创,原创实属不易,转载、援用本文内容请注明出处,剽窃者一律举报+投诉,并保留追究其法律责任的权力。

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿(2021 最新版)

2. 别在再满屏的 if/ else 了,试试策略模式,真香!!

3. 卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.6 正式公布,一大波新个性。。

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

退出移动版