转载请注明:http://blog.youkuaiyun.com/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;
本文介绍了一种使用原子操作__sync_val_compare_and_swap实现线程锁的方法,并通过一个简单的循环来展示如何获取和释放该锁。这种方法可以有效避免多线程环境下资源的竞争冲突。
173

被折叠的 条评论
为什么被折叠?



