在 C# 中使用 ReaderWriter Lock
ReaderWriterLock 用于同步对资源的访问。
ReaderWriterLock 拥有比 Monitor 更好的吞吐量,后者是一种一次性锁。这适用于资源很少更改的情况。
我们来看一下如何在 C# 中声明一个 ReaderWriter 锁 −
static ReaderWriterLock r = new ReaderWriterLock();
以下是 C# 中 ReaderWriter 锁的属性 −
序号 | 属性和说明 |
---|---|
1 | IsReaderLockHeld 获取一个值,指示当前线程是否持有读取锁。 |
2 | IsWriterLockHeld 获取一个值,指示当前线程是否持有写入锁。 |
3 | WriterSeqNum 当前序列号 |
以下是 ReaderWriter 锁的一些方法 −
序号 | 方法与说明 |
---|---|
1 | AcquireReaderLock(TimeSpan) 获取读锁,使用 TimeSpan 值作为超时时间。 |
2 | AcquireWriterLock(TimeSpan) 获取写锁,使用 TimeSpan 值作为超时时间。 |
3 | Equals(Object) 确定指定的 Object 是否等于当前对象。(从 Object 继承。) |
4 | GetHashCode() 默认哈希 |
5 | GetType() 当前实例的类型 |
6 | ReleaseReaderLock() 锁计数递减 |
广告