hob*_*bbs 10
这是胡说八道.根据数据类型,体系结构以及编译器(标准不保证一般的原子性,除非你使用的是C11原子),其中一个可能是也可能不是原子的,但我看不到任何有充分理由认为,一般情况下,i++原子i += 1不是原子.在不使用表达式结果的上下文中,它们很可能实际生成相同的代码.
语句*i++;和i += 1;等效于C.两者都不保证是原子的.
特别是,大于系统字大小的变量的增量(例如,32位系统上的64位变量)几乎总是非原子的,因为原子地增加这样的变量通常需要显式锁定.此外,某些体系结构不支持直接在内存中递增变量.(也就是说,它们需要显式的加载/修改/存储序列.)这些体系结构不能在没有锁定的情况下以原子方式修改任何变量.
*当被视为独立语句时,而不是表达式
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |