ReaderWriterLock类实现了多用户读/单用户写的同步访问机制,可以使用此类对文件的读写进行加锁操作,因为文件缓存一般是大量读少量写的情况,所以非常适合使用ReaderWriterLock。
1、读缓存文件时使用AcquireReaderLock方法,并设置1000ms超时操作。
2、添加缓存文件时使用AcquireWriterLock方法获取写锁。
3、在删除缓存文件时也通过AcquireWriterLock获取写锁。
另外还写了一个测试程序对优化了的文件缓存进行并发访问测试。
测试使用了Interlocked类来同步记录总共的读写次数,使用lock来同步记录总共耗时。
注意使用Thread.Sleep(10);可以保证测试程序的并发量,防止在一个非常小的一个时间片中就耗掉大量的测试操作。