你们好,初次接触zig,对于它的协程实现有一些疑问 #218
-
我看到zig的协程力图实现“非染色”的协程,因此比较感兴趣,进而简单地了解了一下这个语言。看起来这个语言是偏向于底层,追求0成本抽象和极致显式的哲学,因此我对于它的协程的逻辑上的约定实现细节比较好奇: |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
这里有些最新的进展,不过也还没细看。 |
Beta Was this translation helpful? Give feedback.
-
https://kristoff.it/blog/asynchrony-is-not-concurrency/ |
Beta Was this translation helpful? Give feedback.
-
我对底层编码并不特别了解,说一下我的看法可以相互讨论学习。
0成本抽象的说法不适用于协程,协程的实现必然会产生额外开销,如无栈协程需要保存挂起点状态,有栈协程使用独立的栈。
这个问题需要看具体的IO实现,以zig未合并到master的源码为例,保存的时机是在 另外,协程的变量(或者说状态)似乎也有可能不保存在堆上而是栈上? 我对 Asynchrony is not Concurrency 一文的理解是
|
Beta Was this translation helpful? Give feedback.
https://kristoff.it/blog/asynchrony-is-not-concurrency/
这应该是最新的进展,看得我十分兴奋