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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

自旋鎖

2019-11-09 19:15:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

自旋鎖(Spin lock)

自旋鎖與互斥鎖有點(diǎn)類(lèi)似,只是自旋鎖不會(huì)引起調(diào)用者睡眠,如果自旋鎖已經(jīng)被別的執(zhí)行單元保持,調(diào)用者就一直循環(huán)在那里看是 否該自旋鎖的保持者已經(jīng)釋放了鎖,"自旋"一詞就是因此而得名。其作用是為了解決某項(xiàng)資源的互斥使用。因?yàn)樽孕i不會(huì)引起調(diào)用者睡眠,所以自旋鎖的效率遠(yuǎn) 高于互斥鎖。雖然它的效率比互斥鎖高,但是它也有些不足之處:    1、自旋鎖一直占用CPU,他在未獲得鎖的情況下,一直運(yùn)行--自旋,所以占用著CPU,如果不能在很短的時(shí) 間內(nèi)獲得鎖,這無(wú)疑會(huì)使CPU效率降低。    2、在用自旋鎖時(shí)有可能造成死鎖,當(dāng)遞歸調(diào)用時(shí)有可能造成死鎖,調(diào)用有些其他函數(shù)也可能造成死鎖,如 copy_to_user()、copy_from_user()、kmalloc()等。因此我們要慎重使用自旋鎖,自旋鎖只有在內(nèi)核可搶占式或SMP的情況下才真正需要,在單CPU且不可搶占式的內(nèi)核下,自旋鎖的操作為空操作。自旋鎖適用于鎖使用者保持鎖時(shí)間比較短的情況下。       自旋鎖的用法如下:   首先定義:spinlock_t x; 然后初始化:spin_lock_init(spinlock_t *x);   //自旋鎖在真正使用前必須先初始化 在2.6.11內(nèi)核中將定義和初始化合并為一個(gè)宏:DEFINE_SPINLOCK(x)      獲得自旋鎖:spin_lock(x);   //只有在獲得鎖的情況下才返回,否則一直“自旋”                           spin_trylock(x);  //如立即獲得鎖則返回真,否則立即返回假      釋放鎖:spin_unlock(x);


上一篇:IP黑名單校驗(yàn)

下一篇:Max Sum

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌苏市| 花莲市| 星座| 丰台区| 蒙自县| 武冈市| 南宁市| 宜黄县| 且末县| 正蓝旗| 红安县| 长乐市| 白朗县| 绥阳县| 庆城县| 子长县| 基隆市| 华亭县| 天等县| 九寨沟县| 文山县| 丹江口市| 平阳县| 台江县| 孙吴县| 息烽县| 永康市| 夏邑县| 赤水市| 道孚县| 黄浦区| 来凤县| 田东县| 德阳市| 德格县| 华蓥市| 明星| 古浪县| 宿松县| 西畴县| 西乡县|