深入理解Lua协程的实现

协程是lua中一大利器,使用coroutine.create创建协程,使用coroutine.resume调用协程中的实例,使用coroutine.yield可以挂起一个协程,需要的时候再使用coroutine.resume恢复,并且可以从停止的地方开始执行。resume(首次调用会给函数传递参数)和yield的配合强大之处在于通过一对resume-yield可以用来交换数据,resume处于主程中,它将外部状态(数据)传入到协同程序内部;而yield则将内部的状态(数据)返回到主程中。

1.常见函数

wrap返回函数,create返回的是thread

2.生产者,消费者

使用filter包装一下:

参考资料:

https://blog.youkuaiyun.com/wzzfeitian/article/details/8832017

https://www.runoob.com/lua/lua-coroutine.html

https://zhuanlan.zhihu.com/p/76249973

https://zhuanlan.zhihu.com/p/99608423

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值