1

我是多线程编程的新手。

有没有可能出现以下情况?

如果一个线程正在对一个对象进行写入,则没有其他线程可以对其进行读取或写入。

如果一个人在上面写字,那么每个人都可以同时读取该对象吗?

首选 C# 解释。

4

2 回答 2

7

当然,您正在寻找的是ReaderWriterLockSlim(或ReaderWriterLock旧版本的 .NET)。在System.Threading. 当你写的时候你取出一个写锁,当你读的时候你取出一个读锁。然后它会表现出您所描述的行为。

于 2013-05-24T20:03:34.913 回答
2

你需要一个ReaderWriterLock对象。它允许您获取读锁或写锁以及将读锁升级为写锁的能力,以便您可以先检查然后再写入。这篇 MSDN 文章解释了这一切。

于 2013-05-24T20:03:51.723 回答