C++ 从不同线程调用Lua函数(将Lua嵌入C+;+;)可以吗?
我使用的是VS2008、Lua5.1和Luabind0.9.1 <>调用C++中的Lua函数工作正常。 如果有多个线程,并且从每个线程调用了Lua函数,这种情况有问题吗?只有一个Lua状态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寄存器、调用堆栈和其他重要变量
在这种情况下,我应该有更多的卢亚州吗?哪一种是常见的?那样不好。Lua users wiki对线程有很好的理解。几个快速的Google搜索似乎表明Lua VM不是线程安全的,所以我建议每个线程使用一个状态。但是,如果它只是调用Lua函数呢?调用Lua函数可以改变它的状态?我猜所有VM寄存器、调用堆栈和其他重要变量都存储在该状态中,如果两个线程同时使用该状态,这将导致灾难。可以使用互斥体等来保护Lua函数的调用,也可以使用不同的状态。在这种情况下,特别值得注意的是wiki中Lua锁定的部分。请注意,这本质上是一个问题,如果您在线程中进行大量处理,那么最终将得到大量串行代码。。。