一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

今頭條!Linux下常見的鎖機制-自旋鎖 自旋鎖spinlock見解

來源:CSDN 時間:2023-01-06 08:17:11

Linux下常見的鎖機制


【資料圖】

Linux下常見的鎖機制主要有:spinlock(自旋鎖)、mutex(互斥鎖)和semaphore(信號量)等;

Windows下還有CRITICAL_SECTION(臨界區),臨界區機制的實現只能是單進程里,它的性能較高;

多線程之spinlock(自旋鎖)

因為準備要參加一個項目,需要了解tcmalloc的實現機制,無意中看到了使用自旋鎖機制,所以臨時記錄一下。

自旋鎖是鎖機制中簡單易用的一種,它是一種忙等待鎖,一般適用于短時間內處理事件等待的輕量級加鎖。

下面給出一個實例:

int  status; spinlock_t     spinlock;

int init_lock(void) {spin_lock_init(&spinlock); }

int  add_status(struct  inode *inode, struct file *filp) {spin_lock(&spinlock); if( OpenCloseStatus ) {spin_unlock(&spinlock); return -EBUSY; } status++; spin_unlock(&spinlock); }

int  sub_status(struct  inode *inode, struct file *filp) {spin_lock(&spinlock); status--; spin_unlock(&spinlock);

}

Spinlock的一些特點

1. spinlock不會導致線線程上下文切換,即不會導致用戶態到內核態的切換;

2. spinlock只能使用在內核態中,即內核代碼中;

3. spinlock鎖之間的代碼盡量簡短,并且spinlock不能放在遞歸的函數中使用。

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 主站蜘蛛池模板: 康保县| 通河县| 嵊州市| 怀远县| 玛曲县| 东阿县| 黄大仙区| 邓州市| 五原县| 连南| 伊金霍洛旗| 隆化县| 唐海县| 黑河市| 治多县| 桂阳县| 八宿县| 巴楚县| 托里县| 东城区| 南阳市| 磴口县| 昌邑市| 乳源| 交城县| 延庆县| 厦门市| 凌云县| 贡觉县| 侯马市| 扶沟县| 威信县| 周至县| 故城县| 新竹县| 夏河县| 汝州市| 湖州市| 锡林郭勒盟| 永兴县| 广平县|