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

企业网站四大类型石家庄信息门户网站定制费用

企业网站四大类型,石家庄信息门户网站定制费用,wordpress自动写文章,建设网站怎么添加端口映射Lua 协同程序(Coroutine) 定义 Lua 协同程序(Coroutine)与线程类似:拥有独立的堆栈、局部变量、指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。 协同程序可以理解为一种特殊的线程,可以暂停和恢复其执行,从而允…

Lua 协同程序(Coroutine)

定义

Lua 协同程序(Coroutine)与线程类似:拥有独立的堆栈、局部变量、指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。

协同程序可以理解为一种特殊的线程,可以暂停和恢复其执行,从而允许非抢占式的多任务处理。协同是非常强大的功能,但是用起来也很复杂。

线程和协同程序区别

主要区别在于,一个程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。
在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。

线程协程
调度方式操作系统进行抢占式调度非抢占式调度,由程序员控制
并发并发执行,同时运行多个协作运行,同时运行一个
内存占用独立堆栈,开销大共享堆栈、开销小
数据共享共享内存空间通过参数传递
调试难以调试相对简单

使用

协同程序由 coroutine 模块提供支持。

方法描述
coroutine.create()创建 coroutine,返回 coroutine, 参数是一个函数,当和 resume 配合使用的时候就唤醒函数调用
coroutine.resume()重启 coroutine,和 create 配合使用
coroutine.yield()挂起 coroutine,将 coroutine 设置为挂起状态,这个和 resume 配合使用能有很多有用的效果
coroutine.status()查看 coroutine 的状态 注:三种状态:dead,suspended,running,
coroutine.wrap()创建 coroutine,返回一个函数,一旦你调用这个函数,就进入 coroutine,和 create 功能重复
coroutine.running()返回正在跑的 coroutine,一个 coroutine 就是一个线程,当使用running的时候,就是返回一个 coroutine 的线程号

代码示例

function foo()print("协同程序 foo 开始执行")local value = coroutine.yield("暂停 foo 的执行")print("协同程序 foo 恢复执行,传入的值为: " .. tostring(value))print("协同程序 foo 结束执行")
end-- 创建协同程序
local co = coroutine.create(foo)-- 启动协同程序
local status, result = coroutine.resume(co)
print(result) -- 输出: 暂停 foo 的执行-- 恢复协同程序的执行,并传入一个值
status, result = coroutine.resume(co, 42)
print(result) -- 输出: 协同程序 foo 恢复执行,传入的值为: 42

代码输出结果

协同程序 foo 开始执行
暂停 foo 的执行
协同程序 foo 恢复执行,传入的值为: 42
协同程序 foo 结束执行
nil
http://www.yayakq.cn/news/173703/

相关文章:

  • 如何看网站做打好坏如何做外贸网站的推广
  • 做公众号的素材网站如何开发wordpress
  • 如何自学网站建设书籍怎么显示wordpress里元素的源代码
  • 医院 网站建设 新闻做效果图常用的网站
  • 无锡网站制作楚天软件建湖网站建设
  • 美食网站建设的内容分析怎样看一个网站是哪个公司做的
  • 怎么做购物微信网站怎样建立网页
  • 厦门网站开发网站建设网站登封免费网站建设
  • 织梦网站内容怎么做付费可见wordpress视频页面
  • 上海金融网站制作网站制作公司好做片视频在线观看网站
  • 四川大良网站建设去掉wordpress版权
  • 沈阳做网站哪家最便宜企业没有网站怎样做推广方案
  • 网站建设设计图专业
  • 深圳住房建设局网站首页装修公司做网站有用吗
  • 贷款网站平台有哪些网页制作培训网站
  • 做门户网站的营业范围最专业的做音乐网站
  • 旅游网站制作素材百度网盘客户端
  • 找网站建设公司好jsp网站服务建设开题报告
  • wordpress站点语言免费网站建设自带后台管理程序
  • 东莞市官网网站建设报价网站如何提高流量
  • 深圳建立网站公司网站宝安的医院网站建设
  • 公司网站设计与实现的项目建议书尤溪县建设局网站
  • 手机网站建设制作教程视频教程宁波建站价格
  • 企业网站服务器广州电商聚集地
  • 怎么做推广和宣传企业做网站我做的网站在手机里滑动怎么这里卡
  • 鲁谷做网站的公司易语言怎么做网站自动登录
  • 南翔企业网站开发建设学企业网站开发
  • 网站开发算互联网公司吗常德房产网
  • 网站开发商业计划书菠菜导航网站可以做
  • 网站一直维护意味着什么wordpress 建设论坛