一、latch锁是什么锁
1、定义
latch锁是内存锁,是一个小型的在内存中保护list的内存锁结构。
2、特点
1、不排队
2、spin,一个线程想获得一个锁,但是该锁已被另一线程持有,进行spin(空转随机时间)占用cpu间接性的等待锁的释放,然后获取去进行相关操作。
3、os waits:sleep,spin多次仍然spin
4、cpu繁忙,latch争用
Q:什么是锁?
A:
1、用来保护共享资源,支持并发
2、锁会影响并发
3、latch锁、lock锁
二、latch锁是如何保护list
1、“保护”过程分析
1、访问页先需要访问链
2、修改list不等于修改页
3、什么时候修改list
1、物理读,将数据页挂到list上
2、内存读、修改数据页,修改链
4、锁,其实就是一个内存空间,有结构有数据的内存数据块
s:R共享锁
x:W排它锁
5、锁的兼容性
1、但凡有x锁,排它,就不兼容。
2、latch锁排它就会造成latch争用。
注:mutex互斥锁:针对并发量不是很大的资源。
2、原理图分析