ロックフリーキューは、単一生産者/単一消費者の場合に実装でき、多くの場合、ソフトウェアを設計して、複数生産者または複数消費者のキューの数を最小限に抑えることができます。
ロックフリーキューは次のように構築できます。通信する要素の配列と2つの整数を割り当て、それらをHeadおよびTailと呼びます。Headは、次の項目が追加される配列へのインデックスです。末尾は、次の項目を削除できる配列へのインデックスです。プロデューサータスクはHとTを読み取り、アイテムを追加する余地があるかどうかを判断します。Hインデックスにアイテムを書き込み、Hを更新します。コンシューマタスクはHとTを読み取り、利用可能なデータがあるかどうかを判断し、インデックスTからデータを読み取り、Tを更新します。操作の順序(挿入、更新H、削除、更新T)により、データ破損が発生しないようにします。
複数のプロデューサーと単一のコンシューマー、または単一のプロデューサーと複数のコンシューマーが存在する場合、事実上何らかのリソース制限があり、パフォーマンスリミッターはより多くの可能性があるため、同期を使用する以外には何もありませんロックメカニズムを使用したOSオーバーヘッドよりも、単独のプロデューサ/コンシューマになります。
しかし、複数のプロデューサーとコンシューマーがある場合は、より調整されたコミュニケーションメカニズムを取得できないかどうかを確認するために(デザインスペースで)時間を費やす価値があります。このような場合、単一のキューを介してすべてをシリアル化すると、キューの効率がパフォーマンスの中心的な決定要因になります。