lua协程

——协同程序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 +返回值,而直接是返回值。当发生错误的时候,直接断言。

lua协程