首页  >   经验  >   原子操作与互斥访问关系分析

原子操作与互斥访问关系分析

查看 codexia 的博客 2015-06-24 23:53:25 1111
原子   操作   互斥   访问  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介原子操作和互斥访问总是初学操作系统的同学最容易混淆不清的。经过阅读大量书籍和反复揣摩,终于对这个概念清晰了。主要讲解原子操作的原理和实现过程,借鉴了数据库系统的事务来分析。分享给大家,除去疑云吧。

    原子操作,重点在于操作,然后才是修饰的特性“原子”。操作说的是,一个动作,就是一系列指令语句组成的一个功能动作,比如赋值,运算,最后输出。这三个步骤可以看成一个操作,也可以看成是三个操作。这里要强调的是,我们是谈动作,而不是某一个数据。只要完成了语句的执行,操作就完成了,这就是操作,一个单纯的动作。为什么我要这么说呢?因为很多人在思考这个问题时,总是将操作和数据混在一起考虑。这里就是想把你的思维先单纯化,先只看到操作。所以,到这里,你不要想其他的,知道操作是什么就行。操作就是执行语句。

    原子操作,最基础的意思就是,要么执行完毕,要么就不执行。请大家不要小瞧这几个字。就这么几个字,我才琢磨清楚。反而各种说法容易偏离主旨。原子操作意思就是把你要执行的操作当作原子一样,不可以再分。当然,原子操作在内部是可以分成多个步骤,成千上万条语句都可以。只不过,原子操作假借原子来形象的比喻这一系列操作要像原子一样,不可以再分,这只是一个人为的规定,是一个逻辑抽象的概念。虽然可以很多条语句,但是你得保证,要么全部执行完毕,要么一个也不执行。虽然就这么几个字的规定,但是蕴含大量信息。

    下面来仔细解释原子操作的这几个字的规定。

    原子操作,要么一个也不执行,要么全部执行。在数据库系统中,有一个事务的概念,其实就是原子操作。事务的机制,通过日志记录,保证了原子操作的特性。要么全部执行成功,如果执行几个语句后失败,执行过的语句必然对数据库有影响,但是没有执行完,会导致数据错乱。所以数据库通过日志倒着执行一次,就回滚了操作,保证了这个原子操作特性。从这里你也

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 9uu@\ 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:原子操作与互斥访问关系分析
文章地址:http://www.cjjjs.com/article/6242015255323872
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:原子操作与互斥访问关系分析
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. C++ Primer Plus 6th 4.12 复习题 第4题 数组元素提取和操作 查找全网同类文章
  2. 什么是原子性,什么是原子性操作? 查找全网同类文章
  3. 《操作系统精髓与设计原理》读书笔记(一) 并发性:互斥与同步(1) 查找全网同类文章
  4. VS2010启动调试提示拒绝访问问题 查找全网同类文章
  5. Linux信息:5 查看Linux操作系统版本信息命令uname 查找全网同类文章
  6. 关于系统的位数与寻址能力,他们之间的关系 查找全网同类文章
  7. [Windows文件操作函数列表]我想学习API的文件操作 查找全网同类文章
  8. STL中的函数符--operator重载操作符 查找全网同类文章
  9. 线程经典问题-生产者投放和消费者取出问题 查找全网同类文章
  10. 几段简单的文字教你秒懂事件,信号量,互斥器三大线程同步函数 查找全网同类文章
分享到:
分享文章[原子操作与互斥访问关系分析]到QQ空间

相关阅读

猜您感兴趣