企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
由于最初多数的用户线程是被设计成协同式调度 (Cooperative Scheduling)的,所以它有了一个别名——“协程”(Coroutine)。又由于这时候的协程会 完整地做调用栈的保护、恢复工作,所以今天也被称为“有栈协程”(Stackfull Coroutine),起这样的 名字是为了便于跟后来的“无栈协程”(Stackless Coroutine)区分开。无栈协程不是本节的主角,不过 还是可以简单提一下它的典型应用,即各种语言中的await、async、yield这类关键字。无栈协程本质上 是一种有限状态机,状态保存在闭包里,自然比有栈协程恢复调用栈要轻量得多,但功能也相对更有限; 协程的主要优势是轻量,无论是有栈协程还是无栈协程,都要比传统内核线程要轻量得多