あるオブジェクトに対し、読み込みスレッドが多数、書き込みスレッドがひとつだけあります。

読み込みスレッド同士は排他したくないんですが、書き込みスレッドがアクセス中は
読み込みスレッドと排他したいのです。

こういう場合どういう排他制御が定石でしょうか? Win32APIで
クリティカルセクションでオブジェクトを囲ってしまうと、読み込み書き込み
の同時アクセスは防げますが、読み込み同士でも排他しあって具合が
よくありません。