自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 MVCC应用及原理

解决的问题: 解决不可重复读和幻读问题的一种乐观实现方式(代替行锁) 读-写的无锁并发控制,降低系统开销 其他方案及比较:LBCC,mvcc可以避免不同事物之间的竞争 LBCC解决的是当前读情况下的幻读(记录锁,间隙锁,临建锁) MVCC解决的是快照读情况下的幻读 实现原理:依赖于三个隐藏字段、undo log和read view 隐藏字段 DB_TRX_ID:记录插入或更新的最后一个事务id DB_ROLL_PTR:指向该行对应的undolog的指针 DB_ROW_ID:主键id 可能出现的

2021-08-15 13:37:56 127

原创 synchronized应用及原理

解决的问题:多线程并发问题;保证了原子性、可见性、有序性 其他方案及比较:lock,区别如下: Lock比较灵活,但需手动释放和开启 Lock不是Java语言内置的,是一个类 并发量较小情况下,synchronized有优势,高并发情况下,性能下降严重,此时适合用Lock Lock的粒度更细 实现原理:JVM基于进入和退出Monitor对象来实现方法同步和代码块同步。 同步代码块:使用monitorenter和monitorexit指令实现,每个对象都有一个monitor与之关联(LockWo.

2021-08-14 14:08:48 66

原创 Volatile应用及原理

解决的问题:为了提高处理速度,处理器不直接和内存进行通信,而是将系统内存的数据复制到内部缓存后在操作,但操作完不知何时会写会主内存。会导致出现一个线程修改了变量值还未同步到主内存中,另一个线程继续用缓存数据进行操作,出现了共享变量的不一致。 Volatile变量的的每次读取都从共享内存中读取最新值,而且写入会马上刷新到主内存,保证了多处理器开发中共享变量的“可见性”(不保证原子性)。就是一个线程里修改一个共享变量时,另一个线程能马上读到这个修改的值。 其他方案及比较:synchronized和Lock。

2021-08-14 11:55:56 84

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除