我有一个有 4 个线程的程序。
在每个线程中,我执行 luaL_newstate();
每个线程只能访问它自己的 lua 实例。
有什么我需要担心的吗? [IE。是否存在所有 lua 实例在我背后共享的隐藏状态?]
谢谢!
最佳答案
不,那应该工作得很好。所有解释器状态都是自包含在每个 Lua 实例中。我什至会说这是在多个线程和/或进程中使用 Lua 的首选方式。
如果您发现最终确实需要在 Lua 状态之间进行通信,那么最好将数据序列化并使用 C API 传递它。我建议阅读“Exploring Lua for Concurrent Programming”白皮书。介绍了使用多个Lua的方法processes与 message passing为 inter-process communication .
关于multithreading - 在多线程程序中嵌入多个 lua 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018434/