2

我有一个 C 应用程序,我正在将 LUA 作为脚本语言集成到其中,嵌入 LUA 没有问题。

目前我想知道是否可以从我的 C 应用程序同时运行 2 个或 3 个不同的脚本,我注意到 lua_pcall 正在同步运行(因此它在完成脚本的完整执行之前不会返回。

有没有办法同时运行多个脚本,或者至少让 lua_pcall 异步运行。我不想要脚本本身的解决方案,因为我无法控制将要运行的脚本(客户将编写用于配置的脚本,我不想告诉他你必须这样做,所以,所以在你的脚本里面处理同步。

4

1 回答 1

0

正如 Eran 所说,您可以很容易地在单独的系统线程中运行一个新的 lua_State(从 newthread 创建的)。

除此之外,您真正需要做的唯一事情是一些基本锁定(实现 lua_lock/lua_unlock/init/shutdown),以便不会从多个线程访问全局状态元素(_G、注册表、一些内部)。

于 2013-10-30T13:43:34.080 回答