国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

CLH鎖的實現

2024-06-28 16:02:19
字體:
來源:轉載
供稿:網友

#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); 	}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南召县| 台东市| 于田县| 博客| 静乐县| 霸州市| 泗阳县| 大同市| 香港 | 黎平县| 井陉县| 吉木乃县| 嘉祥县| 理塘县| 永胜县| 永平县| 巢湖市| 福安市| 巩义市| 宜春市| 白沙| 上栗县| 大姚县| 江孜县| 邯郸县| 太原市| 江陵县| 冀州市| 彭山县| 油尖旺区| 吴江市| 湘潭市| 荔波县| 桐梓县| 定南县| 兴隆县| 板桥市| 南城县| 麟游县| 双江| 清丰县|