
i++ 的原子性探讨
在软件开发中,原子性操作是指不可中断的基本操作序列。那么,一个常见的操作符 i++ 是否是一个原子操作呢?
答案:否
i++ 并不是一个原子操作,它实际上是一种语法糖。为了实现 i++ 的功能,编译器会将其转换为三个顺序执行的动作:
冠龙科技手机企业网站管理系统2016
冠龙科技手机企业网站管理系统是基于ASP+ACCESS技术开发的电子商务平台,属于全自动化、全智能的在线方式管理、维护、更新的网站管理系统。此系统直接上传到你的网站空间就可以使用了。完全后台操作。后台路径:/admin后台用户及密码均为 admin更新日志:1、增加在线客服系统支持网页在线客服及QQ旺旺等2、修改产品展示的排序错误3、增加了后台修改前台图片的功能4、网站LOGO及版权信息后台自定
0 查看详情
获取 i 的当前值将 1 加到 i 的当前值将新的值赋给 i
这三个动作并不是同时执行的,因此 i++ 并不是一个原子操作。以下代码演示了这一点:
%ignore_pre_1%如果 i++ 是一个原子操作,那么最终输出应该是 200000。然而,由于非原子性,两个线程可能会交替执行 i++ 的三个动作,导致最终值低于预期结果。
以上就是i++ 是原子操作吗?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/800729.html
微信扫一扫
支付宝扫一扫