【发布时间】:2012-02-10 10:48:51
【问题描述】:
前几天我正在和我的朋友讨论。我说的是,在纯 Lua 中,你无法构建一个抢占式多任务系统。他声称你可以,原因如下:
C 和 Lua 都没有内置的线程库 [OP 注释:嗯,Lua 在技术上是有的,但 AFAIK 对我们的目的没有用处]。主要用 C(++) 编写的 Windows 具有先发制人的多任务处理能力,这是他们从头开始构建的。因此,您应该能够在 Lua 中做同样的事情。 我看到的一个大问题是抢占式多任务处理的主要工作方式(据我所知)是它会生成定期中断,管理器使用这些中断来获得控制并确定接下来应该处理哪些代码。我也不认为 Lua 有任何工具可以做到这一点。
我的问题是:是否有可能编写一个纯 Lua 库来让人们进行抢先式多任务处理?
【问题讨论】:
-
仅供参考,这不是您问题的答案(多线程的纯 Lua 实现),但对于只想运行 Lue 代码多个 OS 线程并抢先调度它们的人来说,有很多选择:@ 987654321@
标签: multithreading lua preemptive