美文网首页
lua的coroutine

lua的coroutine

作者: Jokerfang | 来源:发表于2016-08-06 17:24 被阅读0次

前面几个项目也一直在用lua,不过coroutine很少使用到,这个项目服务器换了skynet,在逻辑里面也使用协程了。比如网络消息包,不用直接push给客户端,而是使用long pulling 模式,客户端主动查询的模式,服务器没变化先挂起,然后等有修改在返回给客户端。避免了无脑式的推送给客户端,减少网络压力。 coroutine有点难理解的是coroutine.yield的返回值,这里写了个测试例子。

local fun = function (arg)
        local a = arg 
        print("a=",a)
        local b = coroutine.yield()
        print("b=",b)
end

local co = coroutine.create(fun)
coroutine.resume(co,1)
coroutine.resume(co,2)

结果:

Paste_Image.png

关键的是 第二次 coroutine.resume(co,2) 这个其实是把参数给coroutine.yield的返回值,就是b。

相关文章

  • Lua 协同程序(coroutine)

    什么是协同(coroutine)? Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局...

  • lua的coroutine

    前面几个项目也一直在用lua,不过coroutine很少使用到,这个项目服务器换了skynet,在逻辑里面也使用协...

  • Lua 标准库(standard libraries)

    一、Lua十标准大库: basic library、coroutine library、package libra...

  • Lua Coroutine详解

    协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈,局部变量和指令指针,同时又与其它协同程序共享全局变量和...

  • lua协程

    Lua中协同程序:意义和Unity中一样Lua中协同程序的函数被放在coroutine的表中协同程序状态:挂起、执...

  • LUA 牛逼的coroutine

    Lua的coroutine跟thread的概念贼相似,但是一个multi-thread的程序,可以同时有多个thr...

  • skynet coroutine

    1. lua-profile.c 这个文件实现了一个带profile的coroutine.resume, coro...

  • lua 协同程序(coroutine)

    基本语法 注:在任一指定时刻只有一个协同程序在运行 定义一个协同程序 定义 coroutine (方法一:使用 ...

  • JS 生成器 vs. Lua 协程

    “协程(coroutine)”于我而言还是比较新的概念,Lua 也是刚接触不久。不过碰巧这段时间我又在看 ES6 ...

  • Lua 协同程序(coroutine)与文件流操作

    一、协同程序 Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针...

网友评论

      本文标题:lua的coroutine

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