Slim Reader Writer ロック

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

Vistaから使える

Vistaから使える。

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

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

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

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

再取得できない

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

使い方

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

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)