我是多线程编程的新手。
有没有可能出现以下情况?
如果一个线程正在对一个对象进行写入,则没有其他线程可以对其进行读取或写入。
如果一个人在上面写字,那么每个人都可以同时读取该对象吗?
首选 C# 解释。
我是多线程编程的新手。
有没有可能出现以下情况?
如果一个线程正在对一个对象进行写入,则没有其他线程可以对其进行读取或写入。
如果一个人在上面写字,那么每个人都可以同时读取该对象吗?
首选 C# 解释。
当然,您正在寻找的是ReaderWriterLockSlim
(或ReaderWriterLock
旧版本的 .NET)。在System.Threading
. 当你写的时候你取出一个写锁,当你读的时候你取出一个读锁。然后它会表现出您所描述的行为。
你需要一个ReaderWriterLock
对象。它允许您获取读锁或写锁以及将读锁升级为写锁的能力,以便您可以先检查然后再写入。这篇 MSDN 文章解释了这一切。