キューを使用するべきではない状況

キューは、生産タスクから消費タスクをバッファーするために並列プログラムで広く使用されています。しかし、明示的なキューを使用する前に、代わりに parallel_do または pipeline を使用することを検討してください。これらの操作は、多くの場合、次の理由によりキューよりも効率的です。

対照的に、parallel_do および pipeline はこれらのボトルネックを回避します。これらのスレッド化は暗黙的であるため、値が現れるまでほかのワークを行うようにワーカースレッドを最適化します。また、キャッシュ上のアイテムをホットな状態で維持しようとします。例えば、別のワークアイテムが parallel_do に追加された場合、「ホット」スレッドがアイテムを処理する前に、使用されていない別のスレッドがアイテムをスチールできなければ、アイテムを追加したスレッドに対してローカルなままです。このように、アイテムはホットスレッドでより多く処理されます。

関連情報