一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品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 主站蜘蛛池模板: 镇远县| 体育| 湖南省| 连南| 潞城市| 和田市| 德阳市| 泊头市| 衡阳县| 长岛县| 晋州市| 社会| 岗巴县| 潮州市| 太和县| 小金县| 新密市| 凯里市| 枣强县| 平度市| 炉霍县| 梧州市| 兰州市| 策勒县| 三江| 罗田县| 马山县| 板桥市| 福海县| 安庆市| 库尔勒市| 克拉玛依市| 抚顺市| 宝清县| 雅江县| 秭归县| 高青县| 公安县| 肥东县| 渝北区| 原平市|