c++ - lua_newstate 与 lua_newthread

标签 c++ multithreading lua

我正在尝试将 lua 实现到我现有的多线程应用程序中。我听说 lua 不是线程安全的我一直在为不同的线程创建不同的 lua_State(s)

通过 lua 头文件我找到了 lua_newthread。您将如何将其实现到一个准备就绪的线程应用程序中。您是创建一个 lua_State 并创建单独的 lua_newthread(s) 还是会导致其他问题?

最佳答案

注意,Lua 线程不是操作系统线程(尽管名称具有误导性),只是 Lua 本身(而不是主机应用程序)中的设施以异步方式执行代码。

所以答案是:在您的应用程序中为每个线程创建一个 lua_State,如果您需要在状态之间传递数据,则使用序列化库作为中间件。

关于c++ - lua_newstate 与 lua_newthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26574705/

相关文章:

c++ - 创建我自己的编程语言

c++ - std::call_once 对非原子变量安全吗?

c++ - 我们需要原子地增加线程局部变量吗?

lua - 隐藏一个可继承的Lua并且只暴露对象的属性

graphics - 在 Love2D 中剪切多边形以仅在圆内绘制

c++ - 返回从字符串文字创建的静态 string_view 是否安全?

c++ - 引用和指针的区别

java - 代码(java,多线程)执行到一行代码后停止

c - 嵌入 Lua 5.2 和定义库

c++ - VS 代码 C++ : inaccurate system includePath errors (wchar. h,boost/lambda/lambda.hpp)