Lua协程-测试2

本文通过一个具体的Lua协程示例,详细介绍了Lua中协程的创建、启动、挂起及唤醒的过程,并展示了如何在协程间传递数据。
 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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值