Lock convoy とは

コンピュータサイエンスでは、マルチスレッドアプリケーションの同時実行制御にロックを使用するとロックコンボイがパフォーマンス上の問題となります。
ロック・コンボイは、同じ優先度の複数のスレッドが同じロックに対して繰り返し競合する場合に発生します。デッドロックとライブロックの状況とは異なり、ロック・コンボイのスレッドは進行します。しかし、スレッドがロックを取得しようとするたびに失敗するたびに、スケジューリングクォンタムの残りの部分が解放され、コンテキスト切り替えが強制されます。繰返しコンテキストスイッチのオーバーヘッドとスケジューリング量の不十分さは、全体のパフォーマンスを低下させます。
ロックコンボは、クリティカルセクションなどの同時実行制御プリミティブがメモリヒープやスレッドプールなどの一般的なリソースへのアクセスをシリアライズするときによく発生します。ロックフリーアルゴリズムなどの非ロックの代替方法を使用するか、競合するスレッドの相対的な優先順位を変更することで対処できます。