![]() |
1
5
不,正如Richard在上面提到的,在.NET中没有这种现成的机制。 这就是如何使用互斥锁和信号量来实现它。 http://www.joecheng.com/blog/entries/Writinganinter-processRea.html ,引用:
必须指出,更有效的方法是可能的,如: http://en.wikipedia.org/wiki/Readers-writers_problem#The_second_readers-writers_problem |
![]() |
2
5
Windows不包括跨进程读写器锁。可以使用信号量和互斥量的组合来构造互斥量(互斥量由写入程序持有以进行独占访问,或者由读取器持有,读取器随后使用信号量来释放其他读取器,即写入程序将仅等待互斥量和读取器来进行其中之一)。 但是,如果争用率预期很低(即没有线程长时间持有锁),那么互斥可能会更快:读写器锁的额外复杂性压倒了允许多个读写器进入的任何好处(读写器锁只有在有更多读写器时才会更快,并且锁会保持很长时间,但只有您的分析才能确认这一点。) |
![]() |
3
1
请注意,它使用信号量,因此不支持重入。
|
![]() |
4
-1
System.Threading.Mutex 具有可用于进程内通信的互斥体。如果您想要它不支持的功能,可以通过互斥来实现。 |
![]() |
a a · 为什么在这个可重入锁示例中需要引用计数? 3 年前 |
![]() |
JohnLBevan · 为什么原子语句上需要锁提示? 7 年前 |
![]() |
Jay Wang · 生产者/消费者实施:陷入消费者循环 7 年前 |
![]() |
Andremoniy · 悲观写入是否锁定整个表? 7 年前 |
![]() |
Marcus Cemes · 选择。。。用于更新在提交后选择旧数据 7 年前 |
![]() |
Ins0maniac · Rails,锁定数据库中的记录 7 年前 |