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 end
17 )
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 协程测试2
26 into co 1,a = 10,b = 20
27 into foo,n = 10
28 main true 100
29 into co 2,r = resume1,a = 10,b = 20
30 main true 20 40
31 into co 3,m = resume2-m,n = resume2-n,a = 10,b = 20
32 main true 10 20 结束co协程
33 main dead