おそらくこれは簡単な質問ですが、C# に関する知識が不足しているため、解決策を見つけるのに苦労しています。
これが取引です。lockRead、lockWrite、releaseRead、releaseWrite、および releaseLockWriter の 5 つのメソッドを持つセマフォを実装する必要があります。
最初の 4 つのメソッドの名前は一目瞭然です。最後のメソッドは、ライター ロックを解放し、読み取りロックをアトミックに取得するメソッドです。
ここでの問題は、releaseRead、releaseWrite、および releaseLockWriter が、それぞれ読み取りロックまたは書き込みロックを取得したスレッドによってのみ呼び出されることです。
スレッドがロックの所有者かどうかを知るにはどうすればよいですか? 考えられる解決策は、スレッドごとにIDを作成し、ロックを取得するときにそれらを渡し、解放するときにIDを再度渡し、IDが所有者であるかどうかを確認することですが、おそらくもっと良い方法があります。