在Intel CPU上,以下多线程对int型变量x的操作,哪几个不是原子操作,假定变量的地址都是对齐的 [多项选择]( )
A. x=y
B. x++
C. ++x
D. x=1
A的过程为,取y的值到寄存器,然后把寄存器的值给x所在的内存。 所以A不是原子操作
B. 开辟一个临时变量。然后把原来的变量+1操作。 应当也不是原子操作。
C。 直接 inc, 应当是原子操作
D. 原子操作。
请教一下上面理解正确吗?
...全文
21211打赏收藏
请教昨天的一个笔试题目
在Intel CPU上,以下多线程对int型变量x的操作,哪几个不是原子操作,假定变量的地址都是对齐的 [多项选择]( ) A. x=y B. x++ C. ++x D. x=1 A的过程为,取y的值到寄存器,然后把寄存器的值给x所在的内存。 所以A不是原子操作 B. 开辟一个临时变量。然后把原来的变量+1操作。 应当也不是原子操作。 C。 直接 inc, 应当是原子操作 D. 原子操作。 请教一下上面理解正确吗?