Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明:
RCU, Read-Copy-Update,是Linux内核中的一种同步机制。
RCU常被描述为读写锁的替代品,它的特点是读者并不需要直接与写者进行同步,读者与写者也能并发的执行。RCU的目标就是最大程度来减少读者侧的开销,因此也常用于对读者性能要求高的场景。
来一张图片来描述下大体的操作吧:

rcu_read_lock/rcu_read_unlock来标定临界区;updater)在更新临界资源的时候,拷贝一份副本作为基础进行修改,当所有读者离开临界区后,把指向旧临界资源的指针指向更新后的副本,并对旧资源进行回收处理;上述的描述比较简单,RCU的实现很复杂。本文先对RCU来一个初印象,并结合接口进行实例分析,后续文章再逐层深入到背后的实现原理。开始吧!
RCU的基本思想是将更新Update操作分为两个部分:1)Removal移除;2)Reclamation回收。