当前位置: 首页 > news >正文

深圳网站建设美橙互联网站平台构建

深圳网站建设美橙互联,网站平台构建,网站框架建设,国外网站域名查询封装go函数用于创建并启动一个协程#xff1a; ---go函数创建并启动一个协程 ---param _co_task function 函数原型 fun(_co:thread) function go(_co_task)local co coroutine.create(_co_task) -- 创建一个暂停的协程coroutine.resume(co, co) -- 调用coroutine.resume激活…封装go函数用于创建并启动一个协程 ---go函数创建并启动一个协程 ---param _co_task function 函数原型 fun(_co:thread) function go(_co_task)local co coroutine.create(_co_task) -- 创建一个暂停的协程coroutine.resume(co, co) -- 调用coroutine.resume激活协程执行 end封装项目中的异步函数用于成为协程函数 ---封装c_model.c_foo异步函数成为协程函数 ---param _co thread 协程对象 ---return boolean,string function co_foo(_co)c_model.c_foo(function(_ok, _result)coroutine.resume(_co, _ok, _result) -- 2. 回调函数被调用后激活本协程继续执行并把_ok和_result传递给yieldend)return coroutine.yield() -- 1. 主动放弃运行本协程被切换出去 end使用例子 ---通过顺序编写代码解决回调函数造成同块逻辑被撕裂的例子 ---param _co thread 协程对象 function test(_co)for i 1, 10, 1 dolocal ok, result co_foo(_co) -- co_foo函数会先yield切出等内部回调被执行时再通过resume重新切回来继续执行print(ok, result)end end-- 启动test协程 go(test)封装defer用于处理协程的正常和异常退出 首先定义defer函数让它具备能够多次被调用的能力 function defer(_co_wrap, h)table.insert(_co_wrap.defer_handlers, h) end同时定义co_error对象用于判断是否有错误 ---class co_error ---field ok boolean定义invoke_defer_handlers函数来执行defer操作 function invoke_defer_handlers(_co_wrap, _co_error)for i#_co_wrap.defer_handlers, 1, -1 dolocal h _co_wrap.defer_handlers[i]xpcall(h, function(err) print(err) end, _co_error)end end定义coroutine_resume函数来处理协程的异常退出 function coroutine_resume(_co_wrap, ...)local ok, errmsg coroutine.resume(_co_wrap.co, ...)if not ok theninvoke_defer_handlers(_co_wrap, {okfalse}) -- 异常退出end end定义go函数来处理协程的正常退出 function go(_co_task)local co coroutine.create(function(_co_wrap)_co_task(_co_wrap)invoke_defer_handlers(_co_wrap, {oktrue}) -- 正常退出end)local cowrap { co co, defer_handlers {} } ---type co_wrapcoroutine_resume(cowrap, cowrap) -- 初创建的协程是暂停的手动触发执行 end通过以上封装可以在Lua中以类似Golang的方式编写协程代码。 协程间的通信暂时不需要在多线程中实现因为项目中目前只有一个lua_state对象管理。
http://www.w-s-a.com/news/159861/

相关文章:

  • 四川手机网站建设西安 网站 高端 公司
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版建筑工程知识零基础
  • 广州番禺网站公司v2017网站开发
  • 微信公众号怎么做微网站wordpress和dz
  • 西部数码网站管理助手 301福州搜索优化实力
  • 响应式网站介绍页面模板功能找不到
  • 公司网站如何seo自己做资讯网站
  • 天津网站建设软件开发招聘企业信用信息查询公示系统上海
  • 网站备案中做正品的网站
  • 网站建设0基础学起青海企业网站开发定制
  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司
  • 泉州开发网站的公司有哪些电脑网页翻译
  • 河北省建设机械会网站首页刚做的网站怎么收录
  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名