国产探花免费观看_亚洲丰满少妇自慰呻吟_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); 	}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 腾冲县| 荔浦县| 中阳县| 含山县| 吴旗县| 金川县| 牡丹江市| 建德市| 靖边县| 滨海县| 宜春市| 五华县| 尉氏县| 商水县| 珲春市| 伊川县| 锡林浩特市| 紫阳县| 台山市| 宜阳县| 福贡县| 盱眙县| 新竹市| 濉溪县| 枣阳市| 天全县| 大同县| 柘荣县| 岳西县| 赤壁市| 海兴县| 嘉善县| 仙居县| 丰宁| 定西市| 台中市| 台安县| 偃师市| 揭阳市| 城市| 马边|