我有一个C应用程序,我正在将LUA作为一种脚本语言集成在其中,嵌入LUA没有问题。
目前我想知道是否可以从我的C应用程序同时运行2个或3个不同的脚本,我注意到lua_pcall正在同步运行(所以它不会返回,直到它完成完全执行脚本。
有没有办法同时运行多个脚本,或者至少让lua_pcall异步运行。我不想在脚本本身有一个解决方案,因为我无法控制将运行的脚本(客户将编写脚本进行配置,我不想告诉他你必须这样做,所以,所以在你的脚本里面来处理同步。
答案 0 :(得分:0)
正如Eran所说,你可以很容易地在一个单独的系统线程中运行一个新的lua_State(一个由newthread创建的)。
除此之外,您真正需要的是一些基本锁定(实现lua_lock / lua_unlock / init / shutdown),以便不从多个线程访问全局状态元素(_G,Registry,一些内部)。 / p>