読み取り/書き込みロックはデータセットへのアクセスを制御します。読み取り/書き込みロックに関しては、多数のスレッドが読み取りのためにロックを同時に保持できる一方で、書き込みのためにロックを保持できるのは 1 つのスレッドに限られます。
ほとんどのデバイスドライバは読み取り/書き込みロックを使用しません。これらのロックは mutex よりも低速です。これらのロックがパフォーマンス面で優位になるのは、読み取りの割合が多く、書き込みの頻度の低いデータを保護するときのみです。このようなケースでは、mutex の競合がボトルネックになる可能性があるため、読み取り/書き込みロックを使用したほうが効率的な場合があります。読み取り/書き込みロック関数を次の表にまとめています。詳細は、rwlock(9F) のマニュアルページを参照してください。読み取り/書き込みロック関数には次のものがあります。
読み取り/書き込みロックを破棄します。
読み取り/書き込みロックを保持するスレッドを書き込みから読み取りに降格します。
読み取り/書き込みロックを取得します。
読み取り/書き込みロックを解放します。
読み取り/書き込みロックを初期化します
読み取り/書き込みロックが、読み取りと書き込みのどちらの目的で保持されているかを調べます。
待機することなく、読み取り/書き込みロックの取得を試みます。
読み取り/書き込みロックを読み取りから書き込みに昇格しようと試みます。