知识卡片

读写锁细分读者与写者

专业/工作 · 1107.b

内容

普通自旋锁不区分读写,谁先拿到谁独占。读写锁观察到一个常见事实——大多数对共享资源的访问是读多写少,于是把互斥关系细分:多个读者可以同时持锁并发读取,因为读操作不会破坏数据;但写者必须完全排他,一旦有写者在写,其他任何读者或写者都不能进入。这种设计用”读者互不冲突”换来了比全互斥自旋锁更高的并发度,代价是必须保证读写之间、写写之间严格互斥。DPDK用它来保护memzone、内存段这类读多写少的全局元数据。

参考来源

《深入浅出DPDK》第4章《同步互斥机制》