Slim Reader Writer ロック

投稿者: | 2017/12/8 金曜日

WindowsのWin32APIの話、実験してないので予想で記述。

Vistaから使える

Vistaから使える。

クリティカルセクションに比べて早い

クリティカルセクションはリーダーとかライターの区別がないので、リーダーがたくさん動いていると大変になる場合がある。

ShareモードとExclusiveモードがある

同じロックに対してSharedモードで取得するかExclusiveモードで取得するか選択できる。Shareモードをロックした場合は次のShareモードロックも取得できるはず。Exclusiveはロックが全くない場合だけ取得できるはず。Exclusiveがロックされているときはどっちも取得できない。

再取得できない

クリティカルセクションは取得後に再取得できたがこれはできないらしい。小さなコードブロックで使いデッドロックしないように注意。

使い方

  • InitializeSRWLockで初期化、またはSRWLOCK_INITを直接設定
  • AcquireSRWLockSharedでShareモードロックを取得、ReleaseSRWLockSharedで開放
  • AcquireSRWLockExclusiveでExclusiveモードロックを取得、ReleaseSRWLockExclusiveで開放

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です