应用场景:多线程下的计数等等。

对原子变量的操作是原子操作,能保证在任何情况下都不被打断,是线程安全的,不需要加锁。

在新标准C++11,引入了原子操作的概念,并通过这个新的头文件提供了多种原子操作数据类型,例如,atomic_bool,atomic_int等等,如果我们在多个线程中对这些类型的共享资源进行操作,编译器将保证这些操作都是原子性的,也就是说,确保任意时刻只有一个线程对这个资源进行访问,编译器将保证,多个线程访问这个共享资源的正确性。从而避免了锁的使用,提高了效率。

C++11下的用法:

头文件:#include<atomic>

atomic_int count(0);//声明并初始化

使用方法和普通的变量使用方法相同,只是它的操作已经被封装成类似原子操作,虽然实际上是封装后的,不是真正内核意义上的原子操作,但是这也简化了编程。

C++编程--原子变量相关推荐

  1. 并发编程(1): volatile、原子变量、自旋锁和互斥锁

    并发编程三条特性: 原子性 原子性是指一个操作是不可中断的,要么全部执行成功要么全部执行失败. 可见性 可见性是指当一个线程修改了共享变量后,其他线程能够立即看见这个修改. 有序性 有序性是指程序指令 ...

  2. JAVA 并发编程实践 - 原子变量与非阻塞同步机制 笔记

    2019独角兽企业重金招聘Python工程师标准>>> 非阻塞算法: 利用底层的源自机器指令(比如CAS)代替锁来实现数据在并发访问中的一致性.应用于:操作系统和JVM中实现线程/进 ...

  3. 聊聊高并发(二十)解析java.util.concurrent各个组件(二) 12个原子变量相关类

    这篇说说java.util.concurrent.atomic包里的类,总共12个,网上有很多文章解析这几个类,这里挑些重点说说. 这12个类可以分为三组: 1. 普通类型的原子变量 2. 数组类型的 ...

  4. java cas原理_Java并发之原子变量及CAS算法-上篇

    Java并发之原子变量及CAS算法-上篇 编辑 ​ 概述 本文主要讲在Java并发编程的时候,如果保证变量的原子性,在JDK提供的类中是怎么保证变量原子性的呢?.对应Java中的包是:java.uti ...

  5. 原子变量, 无锁定且无等待算法

    为什么80%的码农都做不了架构师?>>>    Java 理论与实践: 流行的原子 新原子类是 java.util.concurrent 的隐藏精华 文档选项 讨论 将此页作为电子邮 ...

  6. 谈谈原子变量与锁的性能比较

    2019独角兽企业重金招聘Python工程师标准>>> 正常情况下基于原子变量实现的效率会比基于锁的效率高效,因为基于锁的时候会发生线程间的上下文切换,而原子变量不会.用程序实际测试 ...

  7. java中的变量是原子的_Java原子变量

    概述 多个线程操作共享变量(Java堆内存上的数据)会带来bug,Java提供了锁机制(Lock)来管理多线程并发,比如synchronized,但是会带来额外的性能开销(线程阻塞,上下文切换等).为 ...

  8. Java:多线程(同步死锁、锁原子变量、线程通信、线程池)

    5,同步和死锁 5.1,线程同步 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象: 修饰一个方法,被修饰的方法称为同步方法,其作用 ...

  9. java原子变量的作用_AtomicInteger原子类的作用介绍(代码示例)

    本篇文章给大家带来的内容是关于AtomicInteger原子类的作用介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. AtomicInteger 原子类的作用 多线程操 ...

最新文章

  1. 第三届山东大数据-威海赛区-民宿空置预测-排行榜
  2. Hibernate如何一个类映射两个表
  3. linux睿频是自动的吗,Linux限制cpu睿频限制频率
  4. java 数据库转储_从源控制数据库驱动的应用程序所需的转储开始?
  5. SpringBoot:使用JdbcTemplate
  6. Python的逻辑运算符and小析
  7. GAN模型计算量减少至1/9!MIT韩松团队提出GAN压缩法,已开源
  8. action链接html,如何使用@ html.actionlink删除链接文本
  9. php 数据类型 map,ResultMap和ResultType的区别
  10. linux安装软件-rpm命令解析
  11. HTML5---2.语义化标签的兼容性问题以及解决方案
  12. 一文看懂DSP的DMA传输(burst、transfer、wrap)
  13. python区间中的数字统计
  14. 人与自然超越彩虹-下
  15. Resultful API的拦截(拦截器——Interceptor)
  16. ftp服务器可以创建文件夹吗,ftp服务器如何创建文件夹
  17. Bilibili视频-对比学习论文综述【论文精读】
  18. 服务器端无微信第三方平台事件传入,致使粉丝关注、公众号自动回复失效
  19. 黑猴子的家:HBase 高可用 HA
  20. php类似百度快照,php获取百度收录、百度热词及百度快照的方法,php百度快照_PHP教程...

热门文章

  1. 电商平台数据可视化如何实现
  2. GAE开发问题总结、GAE开发心得(我爱记账网-在线记账、网络记账、网上记账、家庭记账)
  3. 掌握JavaScript
  4. 上海市地铁RFID智能工具下的资产管理解决方案,RFID资产管理智能化-苏州新导
  5. TSINGSEE青犀视频与海康合作研发的RTMP高清推流摄像头应该如何选择?
  6. ygo游戏王卡组_【YGO游戏王】卡组介绍——英雄(文字版)
  7. 两边填上相同的数_一年级数学易错——“在括号里填上相同的数”
  8. 我知道是资金盘,但我想暴富
  9. Python那些不为人知的冷知识!(建议收藏)
  10. 胸大肌(03):杠铃卧推