2012-08-11 62 views
1

我可以在同一台机器上轻松启动两个或多个单独的Lua程序(在LuaJIT2上运行)。但是,这些程序如何进行沟通有没有办法?luajit2进程之间的通信?

我能想出的最佳解决方案是每个程序都可以编写一个orher程序可以读取的文本文件。但这是一个缓慢的解决方案(即使文本文件保存在虚拟RAM磁盘上)。

我知道thera是zeromq和其他可能对此有帮助的东西......问题是指令太长,复杂/混乱(至少对我来说)。

有什么建议吗?特别是一些工作代码示例将不胜感激,无论多么简单。即使如何将一个变量的值从一个LuaJIT2进程传递到另一个。

(我使用Windows XP SP3,如果该事项......)

回答

3

本质上讲,他们关键字,您应该寻找的是“IPC”(进程间通信)。

一些选项,你可能想要探索:

  • 共享文件
  • 共享内存
  • 网络套接字
  • 管(在POSIX系统)
  • 中间件利用上述一个

我真的不能说那个其中最好的是。选择取决于其他因素(需要的速度,等待时间,你想传达什么),你没有提供。我只希望我指出你正确的方向。另外,如果ZeroMQ太复杂,我强烈建议你多阅读,而不是寻找更简单的代码示例。 Lua是“自己动手”的语言。

如果你不是真的坚持Lua,请看看PyRo(Python Remote Objects)。或者你可能想自己实现这样的东西。

+0

感谢关键词,我稍后会对它们进行一些研究。我并不坚持Lua,也许我会先看PyRo(和Pythons内置的“多处理”功能)。 (Thouhg只是LuaJIT2中的一个线程可以做比Python多的线程,因为LuaJIT2的“即时”编译器速度更快......) – apk 2012-08-12 10:56:53

+0

PyPy解释器也具有JIT。 – 2012-08-12 11:55:47