1. ホーム
  2. c#

ReaderWriterLockとlock{}の比較

2023-09-19 17:27:20

質問

主な違いと、いつ何を使えばいいのか、教えてください。

Webのマルチスレッドアプリケーションに焦点を当てたものです。

どのように解決するのか?

ロック は、1つのスレッドだけが同時にコードを実行できるようにします。 リーダーライターロック は、複数のスレッドが同時に読み取ったり、書き込みのための排他的なアクセスを持つことができるため、より効率的であるかもしれません。.NET 3.5 を使用している場合 リーダライタロックスリム はさらに高速です。ですから、共有リソースの読み込みが書き込みより多い場合は ReaderWriterLockSlim . これを使用する良い例は、非常に頻繁に (リクエストごとに) 読み込まれ、ファイルの内容はほとんど更新されないようなファイルです。そのため、ファイルから読み込むときは読み込みロックをかけ、多くのリクエストでファイルを読み込めるようにし、書き込むときは書き込みロックをかけます。ファイルから読み込むときは lock を使用すると、基本的に一度に一つのリクエストにしか対応できません。