`

共享锁与独占锁

 
阅读更多

文件锁定有两种方式:共享的和独占的。多个共享锁可同时对同一文件区域发生作用;独占锁则不同,它要求其他区域不能有其他锁定再起作用。


共享锁和独占锁的经典应用,是控制最初用于读取的共享文件的更新。某个进程要读取文件,会先取得该文件或该文件部分区域的共享锁。第二个希望读取相同文件区域的进程也会请求共享锁。两个进程可以并行读取,互不影响。但是,假如有第三个进程要更新该文件,它会请求独占锁。该进程会处于阻滞状态,直到既有锁定(共享的、独占的)全部解除。一旦给予独占锁,其他共享锁的读取进程会处于阻滞状态,直到独占锁解除。这样,更新进程可以更改文件,而其他读取进程不会因为文件的更改得到前后不一致的结果

分享到:
评论

相关推荐

    行业-59 对MySQL锁机制再深入一步,共享锁和独占锁到底是什么?l.rar

    本篇文章将深入探讨MySQL中的两种主要锁类型:共享锁(Shared Locks)和独占锁(Exclusive Locks),以及它们在实际应用中的作用和相互关系。 共享锁,又称为读锁,允许一个事务读取一行数据,但不允许其他事务在此...

    59 对MySQL锁机制再深入一步,共享锁和独占锁到底是什么?l.pdf

    如果此时已经有独占锁在作用于这些数据行,那么加共享锁的操作就会等待独占锁释放。相反,如果你先加了共享锁,其他事务就不能加独占锁来更新这些行,但可以加共享锁来读取。 共享锁和共享锁之间是不互斥的,这意味...

    读-写共享独占锁源码实现-C++实现

    这正是“读-写共享独占锁”所要解决的问题。在VC++环境中,我们可以自定义实现这种锁来优化多线程中的数据操作。接下来,我们将深入探讨读写锁的工作原理以及如何使用C++来实现。 读写锁由两个基本部分组成:读锁和...

    浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁

    - **共享锁(Shared Lock)**:共享锁允许多个用户同时读取数据,但不允许任何写操作。在执行查询(SELECT)时,系统会默认使用共享锁。一旦数据被读取,共享锁通常会在读取完成后立即释放,以便其他用户可以继续...

    SQL Server 2005的并发控制.pdf

    比如,共享锁与共享锁是相容的,而共享锁与独占锁则不相容。锁相容矩阵为不同锁类型在申请和当前锁定状态下的兼容性提供了参考。 SQL Server 2005通过自动管理来控制锁的申请和释放。系统会根据事务的需要自动申请...

    Java面试题并发部分.docx

    4. **共享锁与独占锁**:共享锁允许多个线程同时读取数据,但不允许写操作,例如`ReentrantReadWriteLock`的读锁。独占锁(排他锁)只允许一个线程拥有,可以读写数据,如`synchronized`和`ReentrantLock`。 5. **...

    SQL Server 2005 清华大学 课件 PPT

    - 锁机制:共享锁与独占锁,死锁的预防与解决。 8. **复制技术**: - 数据同步:发布与订阅,事务复制、快照复制和合并复制的不同应用场景。 9. **备份与灾难恢复**: - 备份策略:不同类型的备份及恢复模式。 ...

    数据库 死锁的解决

    另一种常见的死锁情况涉及共享锁与独占锁的竞争: - **用户A** 先读取某条记录,并打算对该记录进行修改; - 在此期间,**用户B** 对同一条记录进行了修改。 此时,用户A持有的共享锁(用于读取)试图升级为独占锁...

    数据库实验四 SJK存储过程实验

    - 理解锁的类型(共享锁与独占锁)及其应用场景。 - 通过观察两个用户的行为差异,理解锁在并发控制中的作用。 #### 总结 通过本次实验,学生不仅掌握了存储过程的基本编写和调用技巧,还深入了解了事务处理、锁...

    读-写共享独占锁源码实现-C实现

    本文将深入解析C语言实现的读写共享锁源码,并探讨其工作原理。 首先,我们来看`MySRWLockManageC.c`和`MySRWLockManageC.h`这两个文件。`MySRWLockManageC.h`通常包含定义读写锁结构体和相关的函数原型,而`...

    浅谈Oracle数据库性能调优 (2).pdf

    在Oracle中,有多种类型的锁,如行级锁、表级锁和共享锁与独占锁等,DBA需要根据实际需求调整锁定粒度,平衡并发性和数据一致性。 事务隔离级别决定了事务在并发环境中的可见性,Oracle支持四种隔离级别:读未提交...

    北航计算机学院数据库原理课件

    可能涉及锁机制(共享锁与独占锁)、两阶段锁协议、多版本并发控制(MVCC)等概念。 6. **数据库恢复**:当系统故障发生时,如何恢复数据库到一致状态。这包括日志记录、检查点技术、前滚/后滚操作等。 7. **...

    最热门的Java 面试题汇总

    11. **AQS中的共享锁与独占锁**:独占锁只有一个线程能获得,如synchronized;共享锁允许多个线程同时获取,如ReentrantReadWriteLock。 12. **生产者消费者模型**:一种多线程同步模型,生产者线程生成数据,消费...

    infomrix手册

    - 锁机制:共享锁与独占锁,以及死锁的预防和解决。 - 并发控制:多用户环境下,如何保证数据的一致性。 7. **备份与恢复** - 备份策略:全备、增量备份数据,以及逻辑备份与物理备份的区别。 - 恢复操作:如何...

Global site tag (gtag.js) - Google Analytics