——协同程序api:创建、简历,产量、包装。运行,状态
——协同程序状态:暂停运行,正常,死
本地停止=function ()
,,返回协同程序。收益率(7、9)
结束
本地公司=coroutine.create (
,,函数(a, b)
,,,,print (“co-body 1: a、b)
,,,,当地m1、m2=协同程序。收益率(1、3、5)
,,,,打印(“co-body 2:”, m1, m2)
,,,,stop ()
,,,,返回“哈哈”
,,结束
)
打印(“协同程序的类型:类型(co)
打印(“协同程序创建后的状态:coroutine.status (co)
打印(“主体1:”,协同程序。简历(13)有限公司11日)
打印(“主体2:”,协同程序。简历(16)有限公司15日)
打印(“主体3:”,协同程序。简历(公司,17))
打印(“协同程序运行后的状态:coroutine.status (co)
打印(“主体4:coroutine.resume (co)
- - - - - - - - - - - - - - - - - - - - - - - -执行结果- - - - - - - - - - - - - - - - - - -
类型的协同程序:线程
协同程序创建后的状态:暂停
co-body 1: 1113年
主体1:true135
co-body 2: 1516年
主体2:true79
主体3:truehaha
协同程序运行后的状态:死
主体4:falsecannot简历死协同程序
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
coroutine.create(函数(args)…结束):创建一个协程,不运行。通过类型可以看到协程本质上是一个线程。创建后,处于挂起状态。
简历运行一个协程,收益率挂起一个协程。简历和收益率是协作运行,是协程的精髓.resume将参数传递给收益,作为收益返回值。收益率的参数,作为简历的返回值。当简历首次运行的时候,其参数是作为创建里面函数的参数进行传递的。
简历是作为保护模式运行的,即当协程内发生错误的时候,程序不会中止,而是会返回错误和错误信息.eg:简历一个已经挂掉的协程,其返回值信息见主体4 .
包装和简历不同的是,包装在执行的时候,返回格式不是bool +返回值,而直接是返回值。当发生错误的时候,直接断言。