Lua计时线程

我该如何编写一个线程或协程(请纠正我的名称),以便在 Lua 中执行一个函数,而主代码查看其结果并做出决策?

我想要一个函数,类似于以下内容:

-----------------------------------------------------------
--   Countdown_Nine_Seconds()                            --
--                                                       --
--   On Entry:  Nothing                                  --
--                                                       --
--   Returns:   Nothing                                  --
--                                                       --
--   Action:    Decrements these two counters...         --
--                                                       --
--              Full_Wait                                --
--              Tenth_Wait                               --
-----------------------------------------------------------

  function Countdown_Ten_Seconds()

  Full_Wait = 9                             -- 这将是全局的
  local i
  local j

  for i = 9, 0, -1
    do                                      -- 这是 I 循环开始
     Tenth_Wait = 10                        -- 十分之一秒中有十个十分之一
      for j = 10, 0, -1
       do                                   -- 这是 J 循环开始
        box.wait(100)                       -- 我们的实现有这个;等待 0.1 秒
         Tenth_Wait = Tenth_Wait - 1        -- 告诉世界其他人
          end                               -- 内部 J 循环结束
           Full_Wait = Full_Wait - 1        -- 减去一秒钟
            end                             -- 外部 I 循环结束
             end                            -- 完成此函数的结尾

然后,我想主线程代码进行以下操作:

  While(Full_Wait > 0)
     do
     :
     :
     :
     (my stuff here)
     :
     :
     :
     :
     end

语法是什么?我从哪里可以阅读有关此主题的信息?

我还缺少什么?

点赞
用户258523
用户258523

Lua 协程是协作式线程,它们需要显式地将控制权让给彼此。它们不能同时运行。

如果你需要抢先式线程,则需要使用多种 Lua 线程库之一。

2014-05-15 17:00:10