coroutine 协程(skynet框架的消息处理)
来源:互联网 发布:mac 相册导入u盘 编辑:程序博客网 时间:2024/06/06 00:17
由于 skynet 框架的消息处理使用了 coroutine ,所以不可以将 lua 原本的 coroutine api 直接和 skynet 服务混用。否则,skynet 的阻塞 API (见 LuaAPI)将调用 coroutine.yield 而使得用户写的 coroutine.resume 有不可预期的返回值,并打乱 skynet 框架本身的处理流程。
通常,你可以使用 skynet.fork ,skynet.wait,skynet.wakeup 在 skynet 服务中创建用户级线程。
如果你有其它原因想使用 coroutine ,那么可以使用 skynet.coroutine 模块。该模块的 API 含义和 Lua 原生的 coroutine 基本一致,所以一般可以这样使用:
local coroutine = require “skynet.coroutine”
该模块增加了一个 API : skynet.coroutine.thread(co) ,它返回两个值,第一个是该 co 是由哪个 skynet thread 间接调用的。如果 co 就是一个 skynet thread ,那么这个值和coroutine.running() 一致,且第二个返回值为 true ,否则第二个返回值为 false 。这第二个返回值可以用于判断一个 co 是否是由 skynet.coroutine.create 或 skynet.coroutine.wrap 创建出来的 coroutine 。
这里的 co 的默认值为 coroutine.running()。
- coroutine 协程(skynet框架的消息处理)
- lua coroutine & skynet
- skynet coroutine 运行笔记
- skynet的并发处理
- skynet源码分析(5)--消息机制之消息处理
- skynet框架
- Skynet服务器框架(八) 任务和消息调度机制
- Unity的Coroutine协程
- MFC框架下消息的处理过程
- Lua协程(coroutine)的基本知识
- 【Unity3D】协程Coroutine的运用
- skynet框架 使用心得
- skynet框架 使用心得
- skynet框架 使用心得
- EventBus 消息处理框架
- 研究下skynet,云风大神的开源框架
- skynet消息队列源码分析
- Coroutine 协程
- 如何修改手机在PC桌面右下角弹出的“MT65xx Android Phone”提示框
- Java POI读取Excel 2003/2007/2010例子
- 基于JS实现回到页面顶部的五种写法(从实现到增强)
- splash渲染网页
- 使用JSP Servlet和Ajax实现简单的注册页面的用户名密码验证
- coroutine 协程(skynet框架的消息处理)
- 阿里面试回来,想和Java程序员谈一谈
- 上市 or 并购,创业公司的出路在哪里?
- 有向图的强连通分量
- springmvc+mybaties的添加用户
- ps中修改文件最终的大小
- Python:输入一个数求它的最大约数。
- sql注入攻击
- 2017"百度之星"程序设计大赛