あなたの質問への答えは多くの要因に依存する可能性がありますが、考慮すべき重要な側面は、マシン内の複数のCPUを最大限に活用する方法だと思います。ここで説明するように、マシンに複数のCPUがある場合、すべてのメッセージを処理する1つのスレッドを使用するメッセージキューアプローチは最適ではありません。すべてのメッセージを処理する1つのスレッドが1つのCPUを最大にする可能性がありますが、他のスレッドは他の使用可能なCPUを十分に活用しません。共有状態アプローチは、複数のCPUをより有効に活用できる可能性があります。
ただし、別のアプローチは、複数のスレッド(CPUの数より最大1つまたは2つ少ない)でキューを空にし、メッセージを同時に処理することによって、メッセージキューアルゴリズムを変更することです。これにより、特に特定のスレッドを特定のCPUにバインドするオプションがある場合に、CPUの使用方法をかなり制御できます。この高度な制御により、メッセージキューのマルチスレッドバージョンのアプローチが共有状態よりも望ましい場合があります。
この答えが適切であるという仮定は、今日多くのマシンが複数のCPUを持っているという事実から生じています。これがあなたの状況に当てはまらない場合は、境界条件のより詳細な説明と、「アウトパフォーム」と言うときのパフォーマンスの意味を教えてください。