协同程序 (Coroutines) Lua 协同程序 (Coroutines) 详解与实践 协同程序 (Coroutines) 是 Lua 语言中一种强大的特性,它提供了一种实现协作式多任务的方式。与线程 (Threads) 的抢占式多任务不同,协同程序允许你在代码的特定点主动挂起执行,并将控制权交还给调用者,稍后又能从挂起的地方恢复执行。这种机制在处理异步操作、迭代器、状态机以及需要并发但又不想引入线程复杂性的场景中非常有用。 什么是协同程序 (Coroutines)? 简单来说,协同程序可以被视为轻量级的线程,但它们运行在同一个线程中。 关键的区别在于: 协作式: 协同程序的主动权在于自身。它必须显式地 (让出) 执行权,才能被挂起。