0

私はluaである程度の経験がありますが、トピックのステートメントのみが可能である場合、最も簡単な解決策を得ることができるという課題に直面しました。

問題

つまり、プログラム(プログラムのセット)はluaを介して接続され、ある種のIPCを形成します。これで、それぞれにLua状態を作成できますが、それでもLua-LuaIPCを使用する必要があります。私はそれを行うことができますが、1つのインスタンスを作成し、これらすべてのアプリからそのインスタンスにアクセスできれば、プロセスを大幅に簡素化できると思いました。

今、私は中央のluaアプリがスレッドセーフな方法で書かれる必要があるという事実に気づいています。最初の単純なアプローチとして、すべてのアプリケーションからのデータをキューに入れてから、コルーチンを使用してイベントを解決したいと思いました。

質問(部分に分かれています):

  1. 複数の「ホスト」から可能なネイティブAPI呼び出しを使用して1つのLua状態にアクセスしています
  2. もしそうなら、それが正しく実行されることを確認するために、それをどのように行うことができ、私が何をしなければならないかを確認する必要があります。
  3. そうでなければ、私はかなりグーグル可能であるLua IPCを使おうとするので、それはかなり質問を締めくくります。

編集1: 私は今、さまざまなluaの「コミュニケーション」ライブラリを調べていますが、実際には何も見つかりません。質問のポイント3は、ローカルホストTCP + JSONに固執しているため、はるかに価値があります。

4

1 に答える 1

0

Luaはa内でスレッドセーフではありませんlua_State(スレッド間で複数の個別lua_Stateのを使用することは安全ですが、異なるスレッドで同じスレッドにアクセスすることはできません)。そのため、APIにプロセス間通信機能が含まれている場合でも、APIにアクセスする複数のプロセスでは機能しません。

于 2012-04-23T10:17:46.313 に答える