2021年02月22日 周一 天气晴 【不悲叹过去,不荒废现在,不惧怕未来】 本文目录 1. 操作系统的原子操作 2. 从汇编代码看 ++i 和 i++ 是否为原子操作 3. 常见问题:进程有一个全局变量i,还有两个线程。i++ 在两个线程里边分别执行100次,能得到的最大值和最小值分别是多少? 3.1 多核CPU最小值为2,最大值200 3.2 单核CPU最小值为100,最大值200 参考文献 1. 操作系统的原子操作 原子操作是不可分割的,在执行完毕前不会被任何其它任务或事件中断: 在单线程中, 能够在单条指令中完成的操作都可以认为是 原子操作,不能在单条指令中完成的操作也都可以认为不是原子操作,因为中断可以且只能发生于指令之间; 在多线程中,不能被其它进程(线程)打断的操作就叫原子操作;