美文网首页
LUA 牛逼的coroutine

LUA 牛逼的coroutine

作者: 银赫大公子EunHyuk | 来源:发表于2018-05-10 18:45 被阅读0次

    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挂起,并可以在适当的时候被重新唤醒,然后继续运行。

    相关文章

      网友评论

          本文标题:LUA 牛逼的coroutine

          本文链接:https://www.haomeiwen.com/subject/pkltdftx.html