Java中的协同程序

joe*_*314 5 java coroutine

我正在阅读这个关于Python和这个维基百科页面中的协同程序的页面.我看到Java中有一些实现了协同程序.

我的问题是:有没有任何已知的原因,为什么Java设计者决定到目前为止还没有实现协同程序,是否有任何计划将其包含在未来的Java版本中?

谢谢.

Old*_*eon 7

实际上,协同例程的概念是Java线程系统的第一个设计.的wait/ notify机制是协同例程的简化形式,其中notify等效于yield

从那时起,已经做了很多工作,特别是使结构线程安全而不是算法.这源于这样的认识:它不是必须同步/产生的代码,而是用于在必须是线程安全的线程之间进行通信数据结构.


s1m*_*nw1 6

织机计划

\n

在不久的将来,延续和协程将出现在 Java 中,它们\xe2\x80\x99 将被称为虚拟线程(也称为纤程)。有\xe2\x80\x99s一个名为 Loom 的项目

\n
\n

Loom 项目旨在探索、孵化和交付构建在其之上的 Java VM 功能和 API,以支持 Java 平台上易于使用、高吞吐量的轻量级并发和新的编程模型。这是通过添加以下结构来实现的:

\n\n
\n

进一步阅读:https ://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html

\n

引用该文件:

\n
\n

该项目的目标是向 Java 平台添加公共分隔延续(或协程)构造。然而,这个目标对于纤维 \xe2\x80\xa6 来说是次要的

\n
\n

Project Loom的初步版本已可用基于抢先体验的 Java 16,

\n