日常思考笔记

技术管理,

团队管理,人才培养,梯队建设

项目管理,项目全生命周期,项目进度

考核规范,

AQS 是CountDownLatch,ReentrantLock,Semaphore,ReentrantReadWriteLock的基础

volatile 关键字

CAS(Compare And Swap)

独占,公平锁,非公平锁

共享,都能拿到锁

ReentrantLock,可重入锁,原理是基于 AQS 实现,AQS 是一个实现同步器的抽象类

公平锁,用队列实现,先到先得

非公平锁,抢占模式,谁抢到就是谁的

Semaphore 信号量

ABA 问题,加版本号

READ COMMITTED,读已提交

REPEATABLE READ,可重复读

next-key locking,临键锁,涉及行锁(Record Lock)和 间隙锁(Gap Lock)的结合,用于解决事务中的幻读问题

读未提交,出现脏读,什么是脏读,就是一个事务读取到了另外一个事务未提交的事务

怎么解决脏读,升级隔离级别到 读已提交

读已提交也存在问题,就是不可重复读,什么是不可重复读,在同一个事务中,多次读取同一个数据,结果不同

怎么解决不可重复读,升级隔离级别到可重复读

可重复读,也存在问题,幻读,什么是幻读,一个事务在同一个时间点查询同一个范围的数据,结果发现有新的数据满足查询条件

怎么解决幻读的问题,升级隔离界别到串行化

串行化,可以解决上面的所有问题,但是,会严重影响性能,因为每个线程都是顺序执行,并且都是独立的,不存在并发

相关推荐
数据智能老司机4 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机5 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
松果猿5 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
无名之逆5 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601015 小时前
rust 同时处理多个异步任务
java·数据库·rust
数据智能老司机5 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
hzulwy6 小时前
Redis常用的数据结构及其使用场景
数据库·redis
程序猿熊跃晖6 小时前
解决 MyBatis-Plus 中 `update.setProcInsId(null)` 不生效的问题
数据库·tomcat·mybatis
吴梓穆7 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
Three~stone7 小时前
MySQL学习集--DDL
数据库·sql·学习