Lua coroutine理解
来源:互联网 发布:弈乐麻将 嘉兴玩网络 编辑:程序博客网 时间:2024/05/03 11:36
(持续更新中.........)
Lua中的coroutine和go里面的goroutine,以及erlang中的spawn出一个新的进程的思想一致(erlang应该是他们的鼻祖)
coroutine中的coroutine.resume解释:
函数原型:coroutine.resume(co, para1, para2, ...)
函数参数:
第一个参数co:coroutine.create的返回值,即一个thread对象;
第二个参数:coroutine中的主函数体执行需要的参数,是一个变长参数,可以传任意多个;
函数返回值:
如果程序运行没有任何错误的话,那么会返回true,true之后紧跟着的值是最近一次调用coroutine.yield时传入coroutine.yield的参数,可以有任意多个,
如果程序在运行中没有任何错误也没有遇到yield而正常结束,那么函数的返回值为true,后面跟上主函数的返回值(return后面的值)
如果有任何错误的话,就会返回false,后面紧跟上错误的信息
函数作用:
当第一次调用coroutine的resume方法时,coroutine从主函数的第一行开始执行,之后在coroutine开始运行后,它会一直运行到自身终止或者是coroutine的下一个yield函数
coroutine中的coroutine.yield解释:
函数原型:coroutine.yield(...)
函数参数:可变长参数
函数返回值:
返回最近一次调用coroutine.resume时传入的参数
函数作用:
挂起当前执行的协程,这个协程不能正在使用一个C函数、一个元表或者一个迭代器
lua的coroutine在执行coroutine.yield时的分析:
只要程序的执行流在遇到yield时,总是立马暂停,此时,coroutine的resume函数将yield的参数作为resume的返回值带出来;
当下一次执行resume的时候,执行体开始执行yield函数,其实就是对yield的函数调用进行求值,求值结果就是本次resume调用时的入参,这样yield就可以作为表达式将函数的求值结果赋给其他变量;
这也体现了resume和yield配合可以作为消息通信的通道的实质
消息传递的过程中,yield起到了关键作用,承上启下的作用。
- Lua coroutine理解
- lua coroutine理解
- LUA 怎么理解coroutine ?
- 理解Lua的Coroutine
- LUA coroutine
- 【Lua】coroutine
- lua coroutine
- lua coroutine
- lua coroutine 参数说明
- Lua之coroutine基础
- lua中的coroutine
- lua coroutine filter
- lua coroutine & skynet
- Lua 协程 coroutine
- 关于lua coroutine
- Lua协同程序coroutine
- lua学习之coroutine
- lua协程coroutine
- 测试系统组成
- 一种复合的自动检测语言或编码的方法
- java设计模式(九)--建造者模式
- uiautomator开发使用到第三方jar,出现class not found或者 BUILD FAILED的问题
- 树状数组(Binary Indexed Tree)
- Lua coroutine理解
- 跨平台正则表达式POSIX regex的使用
- opencv检测运动物体的基础_特征提取
- matlab里面向信号里加入白噪声
- ios学习备份记录
- Android 中LayoutInflater的使用!
- Android App快速开发框架
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- android 自定义横向progressbar样式