转载请注明:http://blog.csdn.net/fuqiangnxn/article/details/53942136
int g_intlock = 0; //锁变量
//下面代码为实现锁的功能
int ivalue;
while(1)
{
ivalue = __sync_val_compare_and_swap(&g_intlock,0,1);
if(ivalue == 0)
{
///--需要锁住的代码
break;
}
pthread_yield();//或者sched_yield();
}
g_intlock = 0;