我有一个C应用程序,我将LUA作为一种脚本语言集成在其中,嵌入LUA没有问题。
目前,我想知道是否可以从我的C应用程序同时运行2或3个不同的脚本,我注意到lua_pcall是同步运行的(因此它在完成脚本的完全执行之前不会返回。
有没有任何方法可以同时运行多个脚本,或者至少让lua_pcall异步运行。我不想在脚本本身中找到解决方案,因为我无法控制将要运行的脚本(客户将编写用于配置的脚本,我不想告诉他您必须这样做,等等,在脚本中处理同步问题)。
发布于 2013-10-30 13:43:34
正如Eran所说,您可以很容易地在一个独立的系统线程中运行一个新的lua_State (一个是从新线程创建的)。
在此基础上您真正需要做的是一些基本的锁定(实现lua_lock/lua_unlock/init/关机),这样全局状态元素(_G、Registry某些内部元素)不会从多个线程中访问。
https://stackoverflow.com/questions/19664692
复制相似问题