OSSpinLock

自旋鎖,和互斥鎖類似,都是為了保證線程安全的鎖。但二者的區(qū)別是不一樣的,對于互斥鎖,當(dāng)一個(gè)線程獲得這個(gè)鎖之后,其他想要獲得此鎖的線程將會被阻塞,直到該鎖被釋放。但自選鎖不一樣,當(dāng)一個(gè)線程獲得鎖之后,其他線程將會一直循環(huán)在哪里查看是否該鎖被釋放。所以,此鎖比較適用于鎖的持有者保存時(shí)間較短的情況下。

// 初始化 
spinLock = OS_SPINLOCK_INIT; 
// 加鎖
OSSpinLockLock(&spinLock); 
// 
解鎖 OSSpinLockUnlock(&spinLock);

然而,YYKit 作者 @ibireme 的文章也有說這個(gè)自旋鎖存在優(yōu)先級反轉(zhuǎn)問題,具體文章可以戳 不再安全的 OSSpinLock

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在日常開發(fā)過程中,為了提升程序運(yùn)行效率,以及用戶體驗(yàn),我們經(jīng)常使用多線程。在使用多線程的過程中,難免會遇到資源競爭...
    xiao333ma閱讀 1,963評論 1 2
  • 在日常開發(fā)過程中,為了提升程序運(yùn)行效率,以及用戶體驗(yàn),我們經(jīng)常使用多線程。在使用多線程的過程中,難免會遇到資源競爭...
    知識小集閱讀 5,994評論 8 61
  • 在日常開發(fā)過程中,為了提升程序運(yùn)行效率,以及用戶體驗(yàn),我們經(jīng)常使用多線程。在使用多線程的過程中,難免會遇到資源競爭...
    星捷閱讀 923評論 0 0
  • 自旋鎖與互斥鎖有點(diǎn)類似,只是自旋鎖不會引起調(diào)用者睡眠,如果自旋鎖已經(jīng)被別的執(zhí)行單元保持,調(diào)用者就一直循環(huán)在那里看是...
    Jack_XY閱讀 1,543評論 0 2
  • 前言 iOS開發(fā)中由于各種第三方庫的高度封裝,對鎖的使用很少,剛好之前面試中被問到的關(guān)于并發(fā)編程鎖的問題,都是一知...
    喵渣渣閱讀 3,861評論 0 33

友情鏈接更多精彩內(nèi)容