Lua 协程(Coroutine)
coroutine 是 Lua 中的协作式并发机制。你可以把它 理解成“可以暂停和继续执行的函数”。
它不是操作系统线程。coroutine 不会自动并行运行,只有当你显式 resume() 它时,它才继续执行;当它调用 yield() 时,它会主动暂停,把控制权交还给调用者。
创建协程
使用 coroutine.create() 创建协程:
main.lua
local co = coroutine.create(function()
print("hello from coroutine")
end)
print(coroutine.status(co))
coroutine.resume(co)
print(coroutine.status(co))
输出:
suspended
hello from coroutine
dead
新创建的协程状态是 suspended。运行结束后变成 dead。