ありますか / メールボックス プロセッサに送信されたメッセージの到着順序を保証するにはどうすればよいですか
つまり、スレッド上で行う場合
agent.post(msg1)
agent.post(msg2)
エージェントの処理ループで、メッセージが順番に受信されることを確認するにはどうすればよいですか?
ありますか / メールボックス プロセッサに送信されたメッセージの到着順序を保証するにはどうすればよいですか
つまり、スレッド上で行う場合
agent.post(msg1)
agent.post(msg2)
エージェントの処理ループで、メッセージが順番に受信されることを確認するにはどうすればよいですか?
彼らです。の実装はPost
、ご想像のとおり、キューにアイテムを追加するだけで(現在のスレッドでは、ロックされています)、待機中のエージェントにウェイクアップして処理するように通知する作業を投稿します。したがってPost
、同じスレッドで次々に2回呼び出すと、メッセージはその順序でキューに入ります。
inbox.Scan(function _ -> None // return an Option)
順序を検出する方法がある場合は、メッセージを見つけるためにも使用できます。もちろん、これにはパフォーマンスの代償が伴うため、キューをそのままにしておくことをお勧めします。