Lua 实现的协程品牌是什么?

有没有人能够具体告诉我 Lua 实现的协程是哪种“品牌”? 我想问这个问题是因为 Lua 的协程似乎非常适合我遇到的一个问题,即我希望能够在各个点暂停函数,可能在嵌套的函数调用中,然后稍后恢复它。尽管有类似“协程/generator”-like 的构造,但在例如 C# 或 JavaScript 中似乎不可能实现。还有哪些语言支持这些类型的协程?

点赞
用户107090
用户107090

这篇文章-《在 Lua 中使用协程》-可免费获取,其中提到:

Lua 实现了 异步协程 的概念,通常被标记为 半对称半协程 [Marlin, 1980], [Dahl et al., 1972]。异步协程设施被称为这样,因为它们涉及两种控制转移操作:一种用于(重新)调用协程,另一种用于暂停它,后者将控制返回到协程调用者。异步协程可以视为从属于它的调用者,它们之间的关系类似于调用方和被调用方例程之间的关系。不同的控制方式由_对称_协程设施实现,它们提供单个传输操作以将控制转换到指定的协程。因为对称协程能够在它们之间传递控制,所以它们被称为在同一分层级别上运行。以下论点说明为什么 Lua 提供异步协程,而不是提供对称设施或两种机制。

2018-12-30 09:30:20