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

网站价值评估怎么做网站素材模板旅游

网站价值评估怎么做,网站素材模板旅游,怎么做无货源电商,汝州市建设局网站lua也有协程这个机制#xff0c;用以完成非抢占式的多任务处理。 协程与线程 协程和线程类似#xff0c;有自己的堆栈、局部变量、指令指针等等。但同时也有不一致的地方#xff0c;其中最重要的地方在于多线程程序可以同一时间运行多个线程#xff0c;而协程同一时间只能…lua也有协程这个机制用以完成非抢占式的多任务处理。 协程与线程 协程和线程类似有自己的堆栈、局部变量、指令指针等等。但同时也有不一致的地方其中最重要的地方在于多线程程序可以同一时间运行多个线程而协程同一时间只能运行一个并且运行期间只有被显式要求挂起的时候才会选择挂起操作。 基础操作 coroutine.create(func)代表创建一个协程也是个高级函数参数即是function。 coroutine.status(co)查看当前协程状态参数是协程本身返回status string。 coroutine.resume(co)使协程由挂起态转为运行态参数是协程本身以及协程需要的参数。返回的是是否成功运行如若不成功还会附加错误信息作为返回。 coroutine.yield()将当前协程挂起。 ---param f async fun(...):... ---return thread ---nodiscard function coroutine.create(f) end---param co thread ---return ---| running # 正在运行。 ---| suspended # 挂起或是还没有开始运行。 ---| normal # 是活动的但并不在运行。 ---| dead # 运行完主体函数或因错误停止。 ---nodiscard function coroutine.status(co) end---param co thread ---param val1? any ---return boolean success ---return any ... function coroutine.resume(co, val1, ...) end---async ---return any ... function coroutine.yield(...) end 如下一段示例代码 co coroutine.create(function ()for i 1,3 doprint(co, i)coroutine.yield()end end) print(coroutine.status(co))--suspended coroutine.resume(co)--co 1 print(coroutine.status(co))--suspended coroutine.resume(co)--co 2 coroutine.resume(co)--co 3 print(coroutine.status(co))--suspended coroutine.resume(co)-- print(coroutine.status(co))--dead print(coroutine.resume(co))--false cannot resume dead coroutine 生产者-消费者 解决生产者消费者的问题就是如何能根据消费者请求数目的多少来决定生产者生产多少此刻用协程再合适不过比如官方文档的示例代码 function receive () local status, value coroutine.resume(producer) return value end function send (x) coroutine.yield(x) end producer coroutine.create( function () while true dolocal x io.read() -- produce new value send(x) end end) 协程参数 当然我们可以试着修改这部分代码改为传入一个数组每次从中取出相应值 function receive(tb)local status, value coroutine.resume(producer,tb)return value end producer coroutine.create(function (tb)for i 1,#tb docoroutine.yield(tb[i])end end)print(receive({1,2,3})) --1 print(receive({2,3,4})) --2 print(receive({5,6,7,8,9})) --3 print(receive({1,2,3,4})) --nil 发现了一个问题没有只有第一次的数组赋值是正确的之后的任意一次传参都是失败的。说明在第一次resume时就需要保证参数是正确的而且后几次传参也只能在第一次传参的基础上继续执行之后的参数并不能覆盖之前的参数。 如果这个tb是个全局变量则是 function receive()local status, value coroutine.resume(producer)return value endproducer coroutine.create(function ()for i 1,#tb docoroutine.yield(tb[i])end end)tb {1,2,3} print(receive()) --1 tb {2,3,4} print(receive()) --3 tb {4,5} print(receive({5,6,7,8,9})) --nil tb {4,5,6,7} print(receive({1,2,3,4})) --nil
http://www.hkea.cn/news/14559495/

相关文章:

  • 建设一个网站的具体流程福州云建站模版
  • wordpress评论删除站点app界面怎么做
  • 做商城网站应该用什么程序中国菲律宾汇率换算
  • 大型门户网站开发方案个人做网站做什么样的话
  • 青海省建设厅建管处网站十堰网站建设制作公司
  • 广州建网站白云区帝国cms制作网站地图
  • 网站怎么做搜索教育网站开发文档模板
  • 个人网页制作方法南昌网站优化
  • 湖南汽车软件网站建设公众号平台网页版登录入口
  • 成都市做网站公司网站编辑怎么做内容分类
  • 婺源网站建设政务内网网站群建设方案
  • 福建住房和城建设网站网站应用开发
  • 主机屋网站做网站用的
  • 网站建设制作汕头微网站移交
  • 有免费的网站建设十大网站排行榜
  • 重庆平台网站建设价格青岛+网站建设
  • 东莞网站建设主要学什么电商网站制作流程图
  • 网站备案中 解析地址平台网站如何做推广方案设计
  • 西安网站建设市场tp框架做网站的优点
  • 义乌好品质自适应网站建设云南网站制作案例
  • 电影网站怎么做网站搜索 收录优化
  • 营销型网站单页域名转发网站
  • 精品资料网官方网站南充市房产信息网
  • 任务发布插件wordpressseo优化专家
  • 手机创建个人网站 免费网站域名备案需要什么
  • 手机网站建设分析厦门seo排名优化
  • 赣icp南昌网站建设html网站开发项目
  • 工信网备案网站不用源码做网站
  • 基础微网站开发动态龙采哈尔滨建站公司
  • 网站建设的页面要求vps网站能打开