【面试-线程相关】i++在两个线程分别执行100次,最大值和最小值分别多少
今天看微软空宣里提到的一道面试题,一下子没反应过来。。毕竟操作系统的知识我好像都上交了x要抽时间看看才行。
题目描述⁍
原理⁍
多个cpu对应多个寄存器。i++并不是原子性的,它的操作分为三步:
- 从内存中取数放入寄存器
- 执行++运算
- 将数写回内存
过程分析⁍
接下来参考文章[1],画图分析一下为2的极端情况
实操[2]⁍
相似题[1:1]⁍
j=100,两个线程j–-,均执行50次,可能值是多少?(0-98)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 若叶!