跳转至


名称 描述 特性 缺点
atomic 原子锁
只能保护寄存长度的数据
一读/一写 保护数据长度有限
spinlock 自旋锁
循环检查,直到锁可用
一读/一写 线程间无优先级保证
MSC lock 基于自旋锁的扩展
通过维护加锁申请队列,锁按申请顺序分配
一读/一写
ticket locks 排队自旋锁
等待加锁的线程按顺序获取锁
一读/一写
rwlock 读写锁
多个读线程可以同时加锁
单写线程持加锁
多读或一写 如果读线程多,写线程可能一直等待
seqlock 序列锁
写线程可以在有读线程持锁时,直接加锁
读线程需要多次读,判断数据是否被更新
多读和一写
Phase-fair locks 公平锁
基于读写锁修改,读写线程依次持锁,避免出现饥饿的情况
读写交替
RCU,read copy update