lua协程例子
-- 创建一个协程 co = coroutine.create(function() print("协程开始") for 1, 10 do print("sub" .. tostring(i)) end -- 挂起协程,等待外部恢复 local result = coroutine.yield("协程暂停") print("协程恢复,接收到的值是:" .. result) -- 再次挂起协程 local anotherResult = coroutine.yield("再次暂停") print("协程再次恢复,接收到的值是:" .. anotherResult) print("协程结束") end) -- 启动协程 print(coroutine.resume(co)) for 1, 10 do print("main" .. tostring(i)) end -- 等待一段时间后恢复协程 print("等待一段时间后...") os.execute("sleep 1") -- 等待1秒(仅适用于类Unix系统) -- 恢复协程并传递值 print(coroutine.resume(co, "恢复协程")) -- 再次等待一段时间后恢复协程 print("再次等待一段时间后...") os.execute("sleep 1") -- 等待1秒(仅适用于类Unix系统) -- 再次恢复协程并传递值 print(coroutine.resume(co, "再次恢复"))
lua子协程与主函数在同一个线程中执行的, 只有协程主动让出, 主函数都行能继续运行
分类:
Lua
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2012-12-20 SqlServer游标
2011-12-20 桌面程序自动更新程序(C# )
2011-12-20 C# 文件版本信息读取