【博客5】c++11新特性:原子操作
2019-04-13 11:57
519 查看
一.原子操作:
指的是由多步操作组成的一个操作。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。任何要求多于一个函数调用的操作都不是原子操作,因为在两个函数调用之间,内核可能会临时挂起线程,执行其他的操作,当内核切换回当前线程时,之前的数据可能别修改,所以不能保证是原子操作。
二.c++11的原子操作:
C++11中,终于有了原子操作的概念。标准提供了多个原子操作数据类型,atomic_int、 atomic_long等。在程序中使用这些数据类型的时候,编译器将保证针对原子数据类型的操作都是原子性的。也就是说,编译器保证多个线程访问这个共享资源的正确性。这样,我们在程序中就可以较少锁的使用,提高程序效率。
三.原子操作的优点:
使用的常规锁来解决问题,结果正确,但是耗时较久。使用的是C++11引入的原子数据类型,使用它程序结果正确,在运行速度上也比加锁的版本快很多。所以,在我们平常写程序的过程中,推荐使用C++11引入的原子变量。
四.在自己电脑vs2012下的一个原子操作例子:
五.c++11常见原子类型及其支持的操作:
大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。
相关文章推荐
- C++11特性(13):原子操作及原子数据类型(1)
- C++11特性(14):原子类型与操作(2)及快速退出
- C++11新特性emplace操作
- OpenGL高级特性之利用Image内存模型&计算着色器&原子操作实现(直方图模型)通用计算
- C++11中的原子操作(atomic operation)
- C++11原子操作
- C++11特性原子类型——多原子类型并行访问的串行化测试
- Java8新特性系列(原子性操作)
- C++11中的原子操作(atomic operation)
- C++原子操作之C++11
- C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
- 【STL】C++11新特性emplace操作
- C++11中的原子操作(atomic operation)(转)
- C++11:原子操作
- C++11多线程(十二):《atomic 类型详解四:C 风格原子操作介绍》
- C++11中的原子操作(atomic operation)
- 漫谈C++11 Thread库之原子操作
- C++11新特性emplace操作
- C++11开发中的Atomic原子操作
- C++11新特性emplace操作