前言 前两篇我们讲述了ReentrantLock的加锁释放锁过程,相对而言比较简单,本篇进入深水区,看看ReentrantReadWriteLock-读写锁的加锁过程是如何实现的,继续拜读老Lea凌厉的代码风。 一、读写锁的类图 读锁就是共享锁,而写锁是独占锁。读锁与写锁之间的互斥关系为:读读可同时 ...
分类:
其他好文 时间:
2019-12-19 23:12:58
阅读次数:
70
从JDK1.5开始,引入了并发包java.util.concurrent(J.U.C),并发容器里的同步容器AQS(AbstractQueuedSynchronizer)是J.U.C的核心,AQS底层使用双向列表,基于模版方法设计 1、AQS使用Node实现FIFO队列,可以用于构建锁或者其他同步装 ...
分类:
其他好文 时间:
2019-12-16 20:52:09
阅读次数:
105
--共享锁:Share;排他锁:Exclusive;行共享锁:Row-S;行排他锁:Row-X select V$SESSION.sid,v$session.SERIAL#,v$process.spid, rtrim(object_type) object_type,rtrim(owner) || ...
分类:
数据库 时间:
2019-12-16 11:29:29
阅读次数:
116
我们都知道数据库的事务具有ACID的四个属性:原子性,一致性,隔离性和持久性。然后在多线程操作的情况下,如果不能保证事务的隔离性,就会造成数据的修改丢失(事务2覆盖了事务1的修改结果)、读到脏数据(事务2读到了事务1未回滚的数据)、不可重读(事务2读到了事务1未提交的修改)和幻读(事务2读到了事务1 ...
分类:
数据库 时间:
2019-12-11 00:02:52
阅读次数:
166
数据库的并发操作 事务 事务 (Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务是恢复和并发控制的基本单位 事务 的 ACID 特性: 原子性 (Atomicity):事务是数据库的逻辑工作单位 一致性 (Consistency) ...
分类:
数据库 时间:
2019-12-04 20:23:18
阅读次数:
150
Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景 一、相关名词 |--表级锁(锁定整个表) |--页级锁(锁定一页) |--行级锁(锁定一行) |--共享锁(S锁,MyISAM 叫做读锁) |--排他锁(X锁,MyISAM 叫做写锁) |--悲观锁(抽象性,不真实存在这个锁) |--乐观锁(抽象 ...
分类:
数据库 时间:
2019-12-04 18:32:37
阅读次数:
112
共享锁(S锁):又称读锁,若事务T对数据对象A加上S锁,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。排他锁(X锁):又称写锁。若事务T对数据对象A加上X锁,其他事务不能再对A加任何锁,直到T释放A上的锁。 总结:共享锁,可以再加共享锁。排他锁,不能加任何锁 某一场地故障时,可使用其 ...
分类:
数据库 时间:
2019-11-29 11:01:09
阅读次数:
92
一、相关名词 表级锁(锁定整个表) 页级锁(锁定一页) 行级锁(锁定一行) 共享锁(S锁,MyISAM 叫做读锁) 排他锁(X锁,MyISAM 叫做写锁) 悲观锁(抽象性,不真实存在这个锁) 乐观锁(抽象性,不真实存在这个锁) 二、InnoDB与MyISAM Mysql 在5.5之前默认使用 MyI ...
分类:
数据库 时间:
2019-11-26 21:13:44
阅读次数:
415
浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景 Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景 一、相关名词 |--表级锁(锁定整个表) |--页级锁(锁定一页) |--行级锁(锁定一行) |--共享锁(S锁,MyISAM 叫做读锁) |--排他锁(X锁,MyISAM 叫做写锁) | ...
分类:
数据库 时间:
2019-11-22 10:33:09
阅读次数:
100
并发控制 1. 读写锁 2. 锁粒度 读写锁 1. 共享锁 (读锁) 2. 排它锁 (写锁) 读锁是共享的,或者说是相互不阻塞的。多个客户在同一时刻可以同时读取同一个资源,而互不干扰。 写锁则是排他的,也就是说一个写锁会阻塞其他的写锁和读锁,这是出于安全策略的考虑,只有这样,才能确保在给定的时间里, ...
分类:
数据库 时间:
2019-11-04 13:09:04
阅读次数:
82