multithreading - 在多线程程序中嵌入多个 lua 实例

标签 multithreading lua

我有一个有 4 个线程的程序。

在每个线程中,我执行 luaL_newstate();

每个线程只能访问它自己的 lua 实例。

有什么我需要担心的吗? [IE。是否存在所有 lua 实例在我背后共享的隐藏状态?]

谢谢!

最佳答案

不,那应该工作得很好。所有解释器状态都是自包含在每个 Lua 实例中。我什至会说这是在多个线程和/或进程中使用 Lua 的首选方式。

如果您发现最终确实需要在 Lua 状态之间进行通信,那么最好将数据序列化并使用 C API 传递它。我建议阅读“Exploring Lua for Concurrent Programming”白皮书。介绍了使用多个Lua的方法processesmessage passinginter-process communication .

关于multithreading - 在多线程程序中嵌入多个 lua 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018434/

相关文章:

linux - epoll:我必须使用多线程吗

lua - Redis 路亚 : dynamic number of keys in redis call

lua - 钩子(Hook)机制的行为

lua - table.unpack 为可变参数函数?

c# - C#在线程间安全使用LINQ

java - JSP 并行包含

asp.net - 线程如何通过 Http.sys、IIS 和 ASP.NET 与请求绑定(bind)

c# 2个BackgroundWorkers同时启动

c++ - 定义变量时出现奇怪的错误

datetime - 在 Lua 中将日期时间格式转换为另一种日期时间格式