LUA 牛逼的coroutine

Lua的coroutine跟thread的概念贼相似,但是一个multi-thread的程序,可以同时有多个thread在运行,但是一个multi-coroutine的程序,同一时间只能有一个coroutine在运行,而且当正在运行的coroutine只有在被显式的要求挂起时,才会挂起。

一、lua将coroutine相关的所有函数封装在表coroutine中。

    create函数:创建一个coroutine,以该coroutine将要运行的函数作为参数,返回类型为thread。

    coroutine有四个不同状态:suspended(悬挂)、running、dead、normal

    create之后,状态为suspended。

    coroutine.resume(恢复)运行该coroutine,状态变为running。

    运行结束之后:coroutine.status(co)为dead



coroutine的强大之处在:yield函数,它可以将正在运行的coroutine挂起,并可以在适当的时候被重新唤醒,然后继续运行。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容