首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问昨天的一个笔试题目

2012-10-07 
请教昨天的一个笔试题目在Intel CPU上,以下多线程对int型变量x的操作,哪几个不是原子操作,假定变量的地址

请教昨天的一个笔试题目
在Intel CPU上,以下多线程对int型变量x的操作,哪几个不是原子操作,假定变量的地址都是对齐的 [多项选择]( )
A. x=y
B. x++
C. ++x
D. x=1

A的过程为,取y的值到寄存器,然后把寄存器的值给x所在的内存。 所以A不是原子操作

B. 开辟一个临时变量。然后把原来的变量+1操作。 应当也不是原子操作。

C。 直接 inc, 应当是原子操作

D. 原子操作。

请教一下上面理解正确吗?

[解决办法]
只有D是原子操作
[解决办法]
lz理解基本正确,理论上3实际上保证不了,不过现在的硬件基本都支持3是原子操作

热点排行