Nginx中的原子操作
摘要:
文章出自云中楼阁,欢迎转载交流原子操作在系统编程中属于基础工具。nginx与其他软件很不一样,它几乎把所有操作系统的功能都封装了一遍,估计是出于编程一致性和可移植性的考虑。对于原子操作,nginx提供一组接口。这里我们只研究有GCC 4.1以上版本的情况,因为nginx对不同的情况有不同的实现,GCC应该还是比较普遍的吧先看些基本类型[代码]GCC中的long类型的长度始终是操作系统的位数,所以这一段代码是可以兼容64位系统的。 另外注意原子类型ngx_atomic_t一定要加上volatile标志,如果不加的话,原子变量可能被编译器优化到寄存器去了,就不可能利用原子操作去实现锁的功能了。 再 阅读全文
posted @ 2010-12-24 21:48 Joevsky 阅读(1812) 评论(1) 推荐(0) 编辑