- 协同程序可以借助 Java 的线程来理解,不过 Java 的线程可以同时运行多个,而 Lua 的协同程序,同时只能运行一个
- 协同程序的基本方法 :
- 创建一个协同程序
co = coroutine.create(function() print("Hi") end) print(co)- 协同程序的4种状态:
- 挂起(suspended)
- 运行(running)
- 死亡(dead)
- 正常(normal)
- status 检查协同程序的状态
print(coroutine.status(co))- resume 启动协同程序
coroutine.resume(co) print(coroutine.status(co))- yield 让运行中的协同程序挂起
coroutine.yield(co) print(coroutine.status(co)) - 基本使用
co = coroutine.create( function() for i=1 , 2 do print("co",i) coroutine.yield() end end ) coroutine.resume(co) coroutine.resume(co) coroutine.resume(co) print( coroutine.resume(co) ) co = coroutine.create(function(a,b,c) print("co" .. a .. b .. c ) end ) coroutine.resume(co,1,2,3) print(coroutine.status(co)) co = coroutine.create(function(a,b) coroutine.yield(a+b,a-b) end ) print( coroutine.resume(co,20,10) ) co = coroutine.create(function() print("co",coroutine.yield()) end ) coroutine.resume(co) print(coroutine.status(co)) coroutine.resume(co,2,5) co = coroutine.create( function() return 6.7 end ) print( coroutine.resume(co) ) print(coroutine.status(co))
16. Lua 协同程序
最新推荐文章于 2025-12-26 16:27:58 发布
112

被折叠的 条评论
为什么被折叠?



