从多个C / C ++ / Java程序中访问一个lua实例

时间:2012-04-23 09:37:05

标签: api lua ipc

我在lua有一些经验,但现在我遇到了挑战,如果只能在主题中发表声明,我可以得到最简单的解决方案。

问题

简而言之,程序(程序集)将通过lua连接,形成某种IPC。现在,我可以在每一个上创建Lua状态,但之后我仍然需要使用Lua-Lua IPC。我可以做到,但我认为如果我可以创建一个实例,并且可以从所有这些应用程序访问它,我可以严格简化该过程。

现在我知道中央lua应用程序需要以线程安全的方式编写。首先,天真的方法我想从所有应用程序排队数据,然后使用协同程序来解决事件。

问题(分成几部分):

  1. 使用可能来自多个“主机”的本机API调用访问一个Lua状态
  2. 如果是的话,怎么做,我必须确保做什么,以确保它能正确运行。
  3. 如果没有,这几乎可以解决这个问题,因为我会尝试使用Lua IPC,这非常棒。
  4. 编辑1: 我现在正在挖掘不同的lua“通信”库,但实际上找不到任何。问题的第3点现在更有价值,因为我现在停留在localhost TCP + JSON上。

1 个答案:

答案 0 :(得分:0)

Lua在lua_State中不是线程安全的(跨线程使用多个单独的lua_State是安全的,但不能在不同的线程中访问相同的线程)。因此,即使API具有一些进程间通信内容,它也不适用于访问它的多个进程。