最新 最热

变量如何在多线程下独善其身

其实java的内存模型是基于cpu的多级缓存架构设计的并且不同的线程 之间默认是不可共享变量的。如果想要实现变量在线程之间的可见性可 已使用Volatile关键字修饰该变量。...

2022-10-27
1

Concurrent包之lock

相对传统的synchronized而言,Lock提供有公平和非公平策略,所以Lock的应用更加灵活。

2022-10-27
2

[mit6.033] 第一部分 LEC 1-6 Operating Systems 笔记

命名的 scheme 体现了我们希望系统通过命名来得到什么功能。(addressing, indirection, etc)

2022-10-27
1

[mit6.s081] 笔记 Lab8: Locks | 锁优化

通过拆分 kmem 中的空闲内存链表,降低 kalloc 实现中的 kmem 锁竞争。

2022-10-27
1

面试系列-mysql锁机制及死锁排查

如果有事务在表里执行增删改操作,那在行级会加独占锁,此时其实同时会在表级加一个意向独占锁;如果有事务在表里执行查询操作,那么会在表级加一个意向共享锁。其实平时操作数据库,比较常见的两种表锁,反而是更新和查询操作加...

2022-10-27
1

面试系列-避免死锁

在项目初期,我们是没有将读写表分离的,而是基于一个主库完成读写操作。在业务量逐渐增大的时候,我们偶尔会收到系统的异常报警信息,DBA 通知我们数据库出现了死锁异常。...

2022-10-27
2

面试系列-mysql间隙锁

间隙锁(Gap Lock)是Innodb在RR级别下为了解决幻读问题时引入的锁机制,(下面的所有案例没有特意强调都使用可重复读隔离级别)幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的时候(加锁查询),会出现不一致的问题,这...

2022-10-27
1

杂记随笔:唤醒丢失问题 & 条件变量 vs 信号量

在没有新消息进入的时候,receiver 应该放弃共享缓冲区的锁,然后进入睡眠等待 sender 唤醒。 然而上述代码的问题在于,「放弃缓冲区锁」和「进入睡眠」不是一步原子操作,而是独立的两步操作。...

2022-10-27
2

MySql三种备份方式

1. 做灾难恢复:对损坏的数据进行恢复和还原 2. 需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用

2022-10-27
2

一文讲清楚 JVM Safe Point

关于 Safe Point 是 JVM 中很关键的一个概念,但我估计有不少同学不是很懂。于是今天跟大家来深入聊聊 Safe Point,希望通过这篇文章能解答这样几个问题:...

2022-10-27
1