请说明主要区别是什么,何时应使用。
专注于Web多线程应用程序。
最佳答案
lock仅允许一个线程同时执行代码。 ReaderWriterLock可能允许多个线程同时读取或具有独占访问权限以进行写入,因此它可能会更有效率。如果您使用的是.NET 3.5,那么ReaderWriterLockSlim甚至更快。因此,如果共享资源被读取的次数多于被写入的资源,请使用ReaderWriterLockSlim
。一个使用它的很好的例子是一个文件,您经常(每次请求)都阅读它,而很少更新文件的内容。因此,当您从文件中读取时,您将输入一个读取锁,以便许多请求可以打开该文件以进行读取;而当您决定写入文件时,您将输入一个写入锁。在文件上使用lock
基本上意味着您可以一次处理一个请求。