首页 > 试题广场 >

请完成下面填空,实现全局计数器的原子递增操作.

[单选题]
CAS(CompareAndSwap),是用来实现lock-free编程的重要手段之一,多数处理器都支持这一原子操作,其用伪代码描述如下,
template bool CAS(T*addr,T expected,T value)
{
	if(*addr==expected){
		*addr=value;
		return true;
	}
	return false;
}
int count=0;
void count_atomic_inc(int*addr)
{
	int oldval=0;
	int newval=0;
	do{
		oldval=*addr;
		newval=______+1;
	}until CAS(_______,________,_________)
}
请完成下面填空,实现全局计数器的原子递增操作.
  • newval,addr,*oldval, oldval
  • oldval,addr,oldval,newval
  • oldval,addr,oldval,*newval
  • oldval,addr,newval,oldval
oldval , addr , oldval , newval 
第2个参数显然不用加*
发表于 2015-03-22 12:59:49 回复(0)
更多回答
addr本身就是int * 类型,作为实参时不用再加 *
oldval , addr , oldval , newval 
发表于 2015-03-27 13:41:28 回复(0)