北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 4963|回复: 5

【梦话连篇】tip:coroutine in lua

[复制链接]
发表于 2013-3-17 13:32:54 | 显示全部楼层 |阅读模式
本帖最后由 hijacker 于 2013-5-25 07:16 PM 编辑

function create_coroutine()
  wait.make(function()
    while true do
      if NotEmpty(Queue) then
        Queue[1]()
        table.remove(Queue, 1)
      else
        wait.time(1)
      end
    end
  end)
end
·对于每一个新建的coroutine,永远不让它dead。队列不空时办事,队列空时闲置,大致代码如上。
·用户需要新coroutine时先检查有没有已创建的闲置coroutine,有则不从新创建。
优点:避开了回收环节,猜测可有效解决mush崩溃(其实我没遇到过)问题。
缺点:想到这里时脑壳开始疼,两个字:复杂。致命缺陷还没想到,请各位指教。

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-5-25 12:26:39 | 显示全部楼层
本帖最后由 hijacker 于 2013-5-25 07:16 PM 编辑

回复 1# hijacker


    来消灭一下我自己的零回复

不过这个思路已经成为过去式了,最近又想出一个新点子,也许可以在保证编码效率的同时,完全抛弃coroutine
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-5-25 18:56:04 | 显示全部楼层
啥电子呢
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-5-25 19:13:37 | 显示全部楼层
本帖最后由 yyahoo 于 2013-5-25 11:56 PM 编辑

回复 3# emyt


    指令队列怎么样?和wait.lua类似,区别是用timer和trigger控制指令流而不是coroutine的挂起/唤醒……不过细节我还没时间想,打算下个月开始着手研究+搭框架
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-5-26 08:11:32 | 显示全部楼层
本帖最后由 yyahoo 于 2013-5-26 10:58 AM 编辑

回复 5# yyahoo


    窃以为那样的话MC就只相当于zmud的快速稳定加强版(zMUD PRO?),使用时的优越感不够强烈啊,而且我就喜欢折腾这些东西5." />5." />
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-5-26 08:23:30 | 显示全部楼层
helllua?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 01:17 PM , Processed in 0.011170 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表