协程的实现原理

用户空间切换 linux 的系统调用提供了在用户空间进行上下文切换的能力。go 语言中用户空间的上下文切换用的是汇编实现,怀疑多是为了跨平台及提升效率而为之。后面用 linux 提供的系统调用来实现一个简单的用户空间上下文切换,反汇编它,看与 go 语言的汇编实现有什么异同。下面首先来看想关的四个系统调用。毕竟是系统调用,会带来用户态和内核态之间的切换开销,这可能也是 go 用汇编实现的缘由之一。
相关文章
相关标签/搜索