什么是原子性操作

在多进程(线程)访问共享资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源,(要么完全执行,要么完全不执行)

简单描述

有个变量X=0,要进行+1操作,步骤如下:

  • 读取x;
  • 取得+1的计算结果
  • 写入x

现在有人进行另一个操作 +2;步骤如下;

  • 读取x;
  • 取得+2计算结果
  • 写入x

如果操作不是原子性的,指令就会错乱,得到的结果可能是1,2,3情况均可能出现;
如果操作是原子性的,就可以保证在进行加1操作的时候其他操作无法插入进来,在完成操作后他才能开始进行他的操作,从而保证数据是可靠的。

redis的原子性

Redis所有单个命令的执行都是原子性的,这与它的单线程机制有关;
Redis命令的原子性使得我们不用考虑并发问题,可以方便的利用原子性自增操作 实现简单计数器功能;

最新文章

  1. 《转载》Java异常处理的10个最佳实践
  2. loj 1044(dp+记忆化搜索)
  3. Eclipse-将svn上的项目转化成相应的项目
  4. 论职务犯罪案件侦查 z
  5. 网页a标签:导航制作 怎么让鼠标经过A标签的时候显示块状背景?
  6. Arduino 数码管LED屏驱动
  7. 接口-以PHP为例
  8. 拾遗与填坑《深度探索C++对象模型》3.2节
  9. 第一次跑eureka
  10. Python练习七
  11. 【mysql】字段类型和长度的解释
  12. 洛谷3825 [NOI2017]游戏 2-sat
  13. DataTable插件报错:Uncaught TypeError: Cannot read property 'style' of undefined
  14. java-Set集合、HashSet集合、LinkedHashSet集合和TreeSet集合
  15. MT【17】利用柯西不等式求三角的最大值
  16. 力扣(LeetCode)219. 存在重复元素 II
  17. Linus运行jar包的操作
  18. js学习(初)
  19. mysql主从延迟(摘自http://www.linuxidc.com/Linux/2012-02/53995.htm)
  20. shell while 语句

热门文章

  1. IE6透明PNG解决方案
  2. spark作业提交参数设置(转)
  3. Metlnfo CMS全版本漏洞收集
  4. Ubuntu之设置应用开机自启动
  5. maven工程的建立
  6. Django自定义UserModel并实现认证和登录
  7. php+mysql缓存技术的实现
  8. caffe使用finetume
  9. cgic实现输入文件名,打开文件的功能
  10. html 简单学习