优化屏障与内存屏障 (barrier,rmb)


优化屏障(Optimization barrier)避免编译器的重排序优化操作,保证编译程序时在优化屏障之前的指令不会在优化屏障之后执行。

Linux用宏barrier实现优化屏障,gcc编译器的优化屏障宏定义列出如下(在include/linux/compiler-gcc.h中): 
#define barrier() __asm__ __volatile__("": : :"memory")


内存屏障

读写屏障像一堵墙,所有在设置读写屏障之前发起的内存访问,必须先于在设置屏障之后发起的内存访问之前完成,确保内存访问按程序的顺序完成。


内存屏障的宏定义功能说明

mb()适用于多处理器和单处理器的内存屏障。

rmb()适用于多处理器和单处理器的读内存屏障。

wmb()适用于多处理器和单处理器的写内存屏障。

smp_mb()适用于多处理器的内存屏障。

smp_rmb()适用于多处理器的读内存屏障。

smp_wmb()适用于多处理器的写内存屏障。


http://www.codelast.com/?p=1184

http://blog.chinaunix.net/uid-25845340-id-3011577.html



转载于:https://www.cnblogs.com/mull/archive/2013/06/04/4477811.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值