Loom 项目的标题已经凸显了引入的三大新特性:
-
Fibers
:几年前看过当时的Loom
项目的测试代码就是使用Fiber
这个API
(现在这个API
已经被移除),意为轻量级线程,即协程,又称为轻量级用户线程,很神奇的是在目前的JDK
中实际上称为Virtual Thread ( 虚拟线程 )
-
Continuations
:直译为"连续",实现上有点像闭包,参考不少资料,尚未准确理解其具体含义,感觉可以"粗暴"解读为"程序接下来要执行什么"或者"下一个要执行的代码块" -
Tail-Calls
:尾调用VM
级别支持
三个新特性不详细展开,目前只是 EA
版本,还存在修改的可能性,所以也没必要详细展开。
当前版本 Loom
项目中协程使用并没有引入一个新的公开的虚拟线程VirtualThread
类,虽然真的存在 VirtualThread
,但这个类使用 default
修饰符,隐藏在java.lang
包中,并且 VirtualThread
是 T