共享锁(读锁)和排他锁(写锁)

简介: 共享锁(读锁)和排他锁(写锁)

一、共享锁(读锁):

共享锁允许多个线程同时获取锁,并发访问共享资源。共享锁是一种乐观锁,允许多个执行读操作的线程同时访问共享资源。

二、排它锁(写锁):

排它锁也叫独占锁,在这种情况下每次只能有一个线程获得锁。独占锁是一种悲观保守的加锁策略,如果某个只读线程获取锁,则其他读线程都只能等待锁的释放,这样就避免了不必要的并发性,因为读操作不会影响数据的一致性。

相关文章
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据库锁:共享锁和独占锁
本文详细介绍了`InnoDB`存储引擎中的两种行级别锁:共享锁(S锁)与排他锁(X锁)。通过具体示例展示了这两种锁的工作机制及其在`InnoDB`与`MyISAM`引擎中的表现差异。文章还提供了锁的兼容性矩阵,帮助读者更好地理解锁之间的互斥关系。最后总结了两种锁的特点及适用场景。适合希望深入了解`MySQL`并发控制机制的读者阅读。
35 1
|
3月前
|
SQL 关系型数据库 MySQL
MySQL使用行级锁时,并非直接锁定记录,而是锁定涉及的索引。对于表`user_item`,更新语句先锁定非主键索引`idx_1`,再锁定主键索引。若两条更新语句分别按不同顺序锁定这两个索引,可能导致互相等待对方释放锁,引发死锁。解决方案包括先查询待更新记录的主键,再按主键更新,确保一致的锁定顺序。
41 2
|
3月前
|
SQL 关系型数据库 MySQL
临键锁引发的死锁
【8月更文挑战第4天】
39 0
临键锁引发的死锁
|
3月前
|
关系型数据库 MySQL 数据库
共享锁与排它锁 + 意向锁+记录锁
【8月更文挑战第3天】
38 0
|
3月前
|
数据库 SQL
间隙锁+临键锁
【8月更文挑战第1天】
45 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——锁-行级锁(行锁、间隙锁和临键锁)
MySQL数据库——锁-行级锁(行锁、间隙锁和临键锁)
88 0
《锁》有那些?
锁是计算机科学中用于控制对共享资源的访问的一种同步机制。不同种类的锁适用于不同的场景和需求。下面是一些常见的锁的种类及其详细介绍:
72 1
|
存储 算法 安全
辛辛苦苦的劳动成果,如何上把锁?
辛辛苦苦的劳动成果,如何上把锁?
|
SQL 监控 Oracle
【悲观锁/乐观锁/排它锁/共享锁/表级锁/行级锁/死锁】
【悲观锁/乐观锁/排它锁/共享锁/表级锁/行级锁/死锁】
116 0
|
PHP
并发锁(二):共享锁和独占锁
并发锁(二):共享锁和独占锁
214 0
并发锁(二):共享锁和独占锁