CLH锁的实现
来源:互联网 发布:淘宝返现也不评价 编辑:程序博客网 时间:2024/06/08 13:44
#include “pthread.h”struct clh_node{struct clh_node* prev;unsigned int locked;}clh_node;struct clh_lock{clh_node* tail;}clh_lock;clh_lock g_clh_lock;pthread_key_t myNode, myPred;void initCLHlock(){g_clh_lock->tail->prev = NULL;g_clh_lock->tail->locked = 0;}void lock(){ clh_node* qnode = (clh_node*)pthread_getspecific(myNode); qnode->locked = TRUE; clh_node* pred = getAndSet(qnode);//原子的得到队尾,并将qnode设为新的队尾。 pthread_setspecific(myPred, pred); while(pred->locked) { }}void unlock(){ clh_node* qnode = (clh_node*)pthread_getspecific(myNode); qnode->locked = FALSE; clh_node* pred = (clh_node*)pthread_getspecific(myPred); pthread_setspecific(myNode, pred);//unlock时必须将myNode指向前面的Node}void main(){pthread_key_create(&myNode, NULL);pthread_key_create(&myPred, NULL); }
0 0
- CLH锁的实现
- CLH锁的机制与实现
- CLH锁
- CLH锁与MCS锁的比较
- 几种所的实现 自旋所,排队自旋锁,MCS锁,CLH锁
- CLH队列锁
- CLH队列锁
- CLH队列锁
- CLH队列锁
- CLH队列锁
- CLH自旋锁
- CLH队列锁
- 【Java】CLH 自旋锁
- CLH锁与MCS锁
- 多线程(十三)CLH队列锁
- AQS(一) 对CLH队列的增强
- JAVA锁---------------------CLH锁和MCS锁
- 锁机制 CLH锁和MCS锁
- 运算电路基础
- 虚拟机ping不通主机,但是主机可以ping通虚拟机 ——linux笔记(1)
- 九度OJ-1445:How Many Tables
- Codeforces Round #321 (Div. 2)E 线段树+字符串hash
- 初学Android:广播机制学习小结
- CLH锁的实现
- 软中断/tasklet/工作队列 区别
- 振兴中华
- node.js包管理器和代码调试
- http://blog.jiguang.cn/couchbase_distributed_storage/
- node.js全局对象和全局变量
- 全排列,next-permutation 简单实现
- 自旋锁、内核信号量、原子变量
- parcelable与serializable 的区别