1 print("Lua 协程测试2") 2 3 function testFun(n) 4 print("into foo,n = "..n) 5 return coroutine.yield(10 * n) -- 挂起co协程 6 end 7 8 co = coroutine.create( -- 创建co协程 9 function(a,b)10 print("into co 1,a = "..a..",b = "..b)11 local r = testFun(a)12 print("into co 2,r = "..r..",a = "..a..",b = "..b)13 local m,n = coroutine.yield(2 * a , 2 * b) -- 挂起co协程14 print("into co 3,m = "..m..",n = "..n..",a = "..a..",b = "..b)15 return a,b,"结束co协程"16 end17 )18 19 print("main",coroutine.resume(co,10,20)) -- 启动co协程20 print("main",coroutine.resume(co,"resume1")) -- 唤醒co协程21 print("main",coroutine.resume(co,"resume2-m","resume2-n")) -- 唤醒co协程22 print("main",coroutine.status(co))23 24 运行结果:25 Lua 协程测试226 into co 1,a = 10,b = 2027 into foo,n = 1028 main true 10029 into co 2,r = resume1,a = 10,b = 2030 main true 20 4031 into co 3,m = resume2-m,n = resume2-n,a = 10,b = 2032 main true 10 20 结束co协程33 main dead