加载中...

RCU(Read-Copy-Update)是一种适用于读多写少场景的无锁同步机制,由 Paul McKenney 等人发展并成为 Linux 内核最重要的并发原语之一。
读者进入临界区几乎不需要任何锁或原子操作,只需标记读侧临界区的边界;写者更新数据时先复制一份副本,在副本上修改后用原子操作替换指针,旧版本数据则等待一个宽限期(grace period)——即所有可能持有旧指针的读者都离开临界区之后——再安全释放。
Linux 内核在路由表、目录项缓存(dcache)、模块卸载、网络协议栈等大量读多写少的路径上使用 RCU,显著提升了多核可伸缩性。
优点是读侧开销极低、可伸缩性好;缺点是写侧逻辑复杂、内存回收有延迟,且要求读临界区内不可睡眠(经典 RCU),使用门槛较高。

登录 后参与讨论
暂无讨论,来发表第一条评论吧