《多线程编程中的原子操作》读后小结
来源:互联网 发布:淘宝网申请账号 编辑:程序博客网 时间:2024/06/08 02:27
《多线程编程中的原子操作》出自《程序员》杂志2012年第3期,作者陈冠诚
关于原子操作的运用,各个平台或者语言已经提供了非常完整的库,在平时编码时,知道和能用好这些库所提供的API就可以,如,windows API中的atomic库,linux内核中的atomic.h,Java concurrent库中的atomic Integer,C++ 1x中最新支持的atomic_int等。
但明白和理解系统实现原子操作的机制和考虑会让我们做到不但知其然,而且知其所以然,加深对代码的理解。下面是文章中提到的几个考虑因素。
1)对变量的读写是否属于原子操作?
例如:
x=y;
x++;
++x;
x=1;
2)x86 CPU的相关机制,有:
诸如单字节的内存读写
总线锁定时(的内存操作)
缓存一致性原则保证缓存数据的正确
3)变量的字节对齐原则上影响对变量的读写是否为原子操作,但当前的硬件系统和编译器多对此做了优化。所以,有时候,即便没有字节对齐,系统对变量也可以原子读写,但我们应该明白那是系统默默为我们做了优化,平常编码中还是应该尽量做到字节对齐。
4)多线程对位的读写是否安全?
0 0
- 《多线程编程中的原子操作》读后小结
- 多线程环境中的原子操作
- 《windows核心编程》读后编码--原子操作
- Windows多线程编程(7)--原子操作
- 原子操作在多核编程中的使用
- 多线程----原子操作
- windows多线程--原子操作
- 多线程之原子操作
- 多线程与原子操作
- 多线程 之原子操作
- 多线程-原子操作
- windows多线程--原子操作
- 多线程-原子操作
- 多线程原子操作:AtomicBoolean
- C# 多线程--原子操作
- linux中的原子操作
- Nginx中的原子操作
- java中的原子操作
- win7下配置jdk7环境变量
- Dynamic Web Module 3.0 requires Java 1.6 or newer.
- 主分区、逻辑分区、拓展分区
- Error starting static Resources ......
- spark与hbase进行交互
- 《多线程编程中的原子操作》读后小结
- V7下的ActionBar
- qt5(cmake): asked CMake to find a package configuration file provided by "Qt5Widgets"
- JBoss的介绍和部署(具体部署百度一下,主要有集成myeclipse和eclipse)
- java 学习笔记 核心技术I
- 安卓第八记——GridView的使用
- 创建空白ShapeFile文件
- webview 和android js 交互
- Deployment failure on Tomcat 6.x. Could not copy all resources to....