【问题标题】:How many lua_State can I have in a c++ program我可以在 C++ 程序中有多少个 lua_State
【发布时间】:2017-09-22 02:00:17
【问题描述】:

据我所知,当我们需要调用lua函数时,我们必须通过调用lua_State *L = lua_open()来创建一个lua解释器。 c++程序中可以同时打开多少个lua解释器?如果有数千个 lua 解释器,会不会影响性能。

【问题讨论】:

  • Lua VM 在单个操作系统线程中工作(并且仅当您要求 VM 执行某些工作时)。要让 1000 个 Lua VM 同时工作,你应该并行运行 1000 个 OS 线程,这会严重影响性能。另一方面,您可以从单个操作系统线程交替运行所有 Lua VM(以循环方式)。 lua_open() 不创建单独的操作系统线程。

标签: c++ lua


【解决方案1】:

lua_States 有内存,它使用资源。一次也只能运行一个。这限制了可以运行的同时状态的数量。但是当他们“等待”时——他们只使用内存来存储变量和加载的模块。

【讨论】:

  • 但是我可以使用 lua_open() 创建很多 lua_State。而且lua_State的地址不一样
猜你喜欢
  • 1970-01-01
  • 2013-07-13
  • 2011-11-27
  • 2014-08-21
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 2010-11-27
  • 2020-08-06
相关资源
最近更新 更多