多个脚本和Lua线程存在问题

当我有两个具有相同功能名称和参数的脚本在不同线程中运行,假设具有不同环境时,第二个线程最终会覆盖第一个的定义,并且第一个线程的状态会被垃圾回收!

我基本上试图以这种方式调用多个脚本(用于游戏引擎):

原文链接 https://stackoverflow.com/questions/2196444

点赞
stackoverflow用户41661
stackoverflow用户41661

如手册所述,由 newthread 创建的线程状态与其他线程共享全局状态。如果您需要每个线程的存储,您必须创建一个在注册表中使用的特殊键。

来自手册(注意以下划线标注):

lua_State *lua_newthread (lua_State *L);

创建一个新线程,将其推送到堆栈上,并返回表示此新线程的 lua_State 指针。此函数返回的新状态与原始状态共享所有全局对象(如表格),但具有独立的执行栈。没有显式函数来关闭或销毁线程。线程与任何 Lua 对象一样受垃圾收集的影响。

2010-02-04 00:41:00