Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从不同线程调用Lua函数(将Lua嵌入C+;+;)可以吗?_C++_Lua - Fatal编程技术网

C++ 从不同线程调用Lua函数(将Lua嵌入C+;+;)可以吗?

C++ 从不同线程调用Lua函数(将Lua嵌入C+;+;)可以吗?,c++,lua,C++,Lua,我使用的是VS2008、Lua5.1和Luabind0.9.1 调用C++中的Lua函数工作正常。 如果有多个线程,并且从每个线程调用了Lua函数,这种情况有问题吗?只有一个Lua状态 在这种情况下,我应该有更多的卢亚州吗?哪一种是常见的?那样不好。Lua users wiki对线程有很好的理解。几个快速的Google搜索似乎表明Lua VM不是线程安全的,所以我建议每个线程使用一个状态。但是,如果它只是调用Lua函数呢?调用Lua函数可以改变它的状态?我猜所有VM寄存器、调用堆栈和其他重要变量

我使用的是VS2008、Lua5.1和Luabind0.9.1

<>调用C++中的Lua函数工作正常。 如果有多个线程,并且从每个线程调用了Lua函数,这种情况有问题吗?只有一个Lua状态


在这种情况下,我应该有更多的卢亚州吗?哪一种是常见的?

那样不好。Lua users wiki对线程有很好的理解。

几个快速的Google搜索似乎表明Lua VM不是线程安全的,所以我建议每个线程使用一个状态。但是,如果它只是调用Lua函数呢?调用Lua函数可以改变它的状态?我猜所有VM寄存器、调用堆栈和其他重要变量都存储在该状态中,如果两个线程同时使用该状态,这将导致灾难。可以使用互斥体等来保护Lua函数的调用,也可以使用不同的状态。在这种情况下,特别值得注意的是wiki中Lua锁定的部分。请注意,这本质上是一个问题,如果您在线程中进行大量处理,那么最终将得到大量串行代码。。。