co=coroutine.create(function() print("hi") end) print(coroutine.status(co)) coroutine.resume(co) print(coroutine.status(co)) print() co=coroutine.create(function() for i=1,2 do print("co",i) coroutine.yield() end end) coroutine.resume(co) print(coroutine.status(co)) coroutine.resume(co) print(coroutine.status(co)) coroutine.resume(co) --没有输出 print(coroutine.status(co)) print() co=coroutine.create(function(a,b,c) print("co",a,b,c) end) coroutine.resume(co,1,2,3) co=coroutine.create(function(a,b) print("I'm before yield") --第一次运行执行 coroutine.yield(a+b,a-b,"needless args") --在这停住,返回yield的参数 print("Mgs") end) print(coroutine.resume(co,20,10)) --参数传给yield,处理后再返回 print("I print first") coroutine.resume(co) co=coroutine.create(function() return "I'll return" end) print(coroutine.resume(co)) --主函数的返回值回传给resume print()
输出结果:
suspended hi dead co 1 suspended co 2 suspended dead co 1 2 3 I'm before yield true 30 10 needless args I print first Mgs true I'll return
您可能感兴趣的文章:
- Lua协程(coroutine)程序运行分析
- Lua的协程(coroutine)简介
- Lua之协同程序coroutine代码实例
- Lua协同程序(COROUTINE)运行步骤分解
- Lua协同程序函数coroutine使用实例
- 举例详解Lua中的协同程序编程
- Lua中的协同程序详解
- Lua中的协同程序之resume-yield间的数据返回研究
- Lua中的协同程序探究
- Lua协同程序coroutine的简介及优缺点
本文由 华域联盟 原创撰写:华域联盟 » Lua编程示例(七):协同程序基础逻辑
转载请保留出处和原文链接:https://www.cnhackhy.com/84620.htm