多核程序设计其实挺困难的,就拿RCU(Read-Copy-Update)技术来说,我现在已经不知道自己看《深入理解并行编程》的RCU多少次了。到现在为止,还是有一些东西没有完全理解。这篇blog算是对我所领会到的RCU知识的暂时性总结。
-
RCU背景
从个人的理解来讲,RCU其实是对rwLock的一种优化。从不区分读写的粗粒度锁到读写锁,然后到RCU机制,这就体现着并行程序设计的不断演进。rwLock的思路是,多线程读取不存在同步问题,所以放宽了读取锁,提高了并发读取的效率。而RCU的思路是,维持临界区多个版本(完整的非中间版本),同时取消读取锁,这种优化将会进一步的提高读取效率。事实上,在多数的多线程应用场景上,读取频率都是远远大于改写频率的。特别是在Linux内核中,很多全局数据结构会被同时读取,其次数远高于写入次数。
Figure… 【查看更多】
最新评论