私の問題を説明するサンプルコード。
要求をサーバーに (ZMQ 経由で) 次の形式で送信する送信者
["sender-1", "sender-1-bdc1c14624076b691b8d9e15fbd754f1"]
..
["sender-99","sender-99-a2123d02c2989ef57da370bb13ba60e4"]
サーバーは、送信者からデータを受信すると、それを同じ形式で受信者に中継します。
["sender-1", "sender-1-bdc1c14624076b691b8d9e15fbd754f1"]
...
["sender-99","sender-99-a2123d02c2989ef57da370bb13ba60e4"]
受信者は、サーバーからの要求を受信すると、メッセージを出力するだけです。
説明:
この行(サーバー内)mutex
で定義されたを使用しない場合。上記のフォーマット/標準に準拠していないデータが受信側に表示されます。
サーバーが出力する例 (この行)
"Sending sender-97 -- sender-97-9a284488454c8e8fd22bbbcf678895e9"
"Sending sender-98 -- sender-98-447eb5be94e7f6d949e764d7c88239ad"
しかし、受信側では、次のようなメッセージが表示されます。
sender-97 -- sender-98
sender-98-22d9f01a8f801f559a9ff4e388813251 --
質問:
私には、スレッドの問題の可能性があるようです(私は間違っているかもしれません)。(サーバー内の)Celluloid(send)に渡されるデータは、他のスレッドによって変更されています。
Celluloid がスレッドの問題のほとんどすべてを処理しているという印象を受けました。
このすべてについて私の理解は正しいですか?