2011年8月20日

kfifo 一读一写无锁缓冲区中的memory barrier

摘要: Linux kernel实现了一个kfifo,支持一读一写线程的无锁操作。具体代码见kernel/kfifo.c。在2.6稍高一点的版本里都会涉及到memory barrier。本文稍微解释一下memory barrier。先看一下简单的两行代码: 26 bool flag = true; 27 int tmp = 10;26,27在现代的多核处理器里执行可能是并行的,实际运行过程和表面代码有点差别。在26,27前后加上memory barrier后,生成指令能保证运行顺序和代码顺序是一样的。 阅读全文

posted @ 2011-08-20 10:15 daemonh 阅读(257) 评论(0) 推荐(0) 编辑

导航