8. 锁概述
2018-12-11 本文已影响0人
TheMrBigHead
线程同步机制是一套用于协调线程间的数据访问(Data Accecc)和活动(Activity)的机制,该机制用于保障线程安全以及实现这些线程的共同目标
锁概述
锁(Lock)的思想:将多个线程对共享变量的并发访问转换为串行访问
临界区(Critical Section):锁的持有线程在其获得锁之后和释放锁之前的这段时间内所执行的代码
共享数据只允许在临界区内进行访问,临界区一次只能被一个线程执行
相关概念
可重入性(Reentrancy)
一个线程在持有一个锁的时候,能否再次或多次申请该锁
image.png锁的粒度
一个锁实例所保护的共享数据的数量大小
粒度粗 粒度细
锁的适用场景
(1)check-then-ack操作
(2)read-modify-write操作
(3)多个线程对共享数据进行更新