多线程的共享资源访问之——读写锁

199 阅读1分钟

每天都觉得压力重重,为了释放压力,只有多学习一点点,今天的目标是比昨天的我强大一点点!那就深入理解下读写锁吧,我的代码中用的较少。

目录

互斥锁:lock

定义:对共享资源进行互斥,仅允许一个线程进入。
在多线程编程方面遇到的第一个问题是,并发对共享资源的访问权限。当两个或多个线程共享对某个对象的访问权限且可能同时尝试修改此对象时,就会出现这个问题。当 C# 首次发布时,lock 语句实现了一种基本方法,可确保只有一个线程能访问指定资源(如数据文件),且效果很好。C# 中的 lock 关键字很容易理解,它颠覆了我们对这个问题的思考方式。

不过,简单的 lock 存在一个主要缺陷:它不区分只读访问权限和写入访问权限。代码示例如下:

Object thisLock = new Object