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

问题

简而言之,程序(一组程序)需要通过lua连接,形成某种形式的IPC。现在,我可以在它们的每一个上创建Lua状态,但是我仍然需要使用Lua-Lua IPC。我可以做到这一点,但是我认为,如果我只能创建一个实例,并从所有这些应用程序中访问它,我可以大大简化这个过程。

现在我意识到,中央lua应用程序需要以线程安全的方式编写。作为第一次朴素的尝试,我想从所有应用程序中排队数据,然后使用协同程序来解决事件。

问题(细分为若干部分):

  1. 是否可能从多个“主机”使用本机API调用来访问一个Lua状态
  2. 如果是,如何实现,并确保我所做的一切都能正常运行。
  3. 如果不是,那么问题基本上就结束了,因为我将尝试使用Lua IPC,这是相当容易解决的。

编辑1: 我现在正在挖掘不同的lua“通信”库,但真的找不到任何一个。问题的第3点现在变得更加有价值,因为我现在卡在本地主机TCP + JSON上了。

原文链接 https://stackoverflow.com/questions/10278057

点赞
stackoverflow用户734069
stackoverflow用户734069

Lua 在一个 lua_State 中不是线程安全的(在多个分离的 lua_State 跨线程使用是安全的,但不允许在不同线程中访问相同的 lua_State)。因此,即使 API 中有一些进程间通信的东西,也不能让多个进程访问它。

2012-04-23 10:17:46