lock只允许一个线程同时执行代码.ReaderWriterLock可能允许多个线程同时读取或具有独占的写入访问权限,因此可能更高效.如果你正在使用.NET3.5ReaderWriterLockSlim甚至更快.因此,如果共享资源的读取频率高于写入频率,请使用ReaderWriterLockSlim
.使用它的一个很好的例子是,您经常(在每次请求时)读取一个文件,并且很少更新该文件的内容.因此,当你从文件中读取时,你会输入一个读锁,以便许多请求可以打开它进行读取,当你决定写入时,你会输入一个写锁.在文件中使用lock
基本上意味着您可以一次处理一个请求.