2012-08-11 107 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