IT科技

當前位置 /首頁/IT科技 > /列表

自旋鎖和互斥鎖的區別

自旋鎖和互斥鎖的區別是:

自旋鎖和互斥鎖的區別

自旋鎖與互斥鎖有點類似,只是自旋鎖不會引起調用者睡眠,如果自旋鎖已經被別的執行單元保持,調用者就一直循環在那裏看是 否該自旋鎖的保持者已經釋放了鎖,“自旋”一詞就是因此而得名。其作用是為了解決某項資源的互斥使用。因為自旋鎖不會引起調用者睡眠,所以自旋鎖的效率遠高於互斥鎖。雖然它的效率比互斥鎖高。

自旋鎖一直佔用CPU,他在未獲得鎖的情況下,一直運行--自旋,所以佔用着CPU,如果不能在很短的時 間內獲得鎖,這無疑會使CPU效率降低。在用自旋鎖時有可能造成死鎖,當遞歸調用時有可能造成死鎖,調用有些其他函數也可能造成死鎖,因此要慎重使用自旋鎖,自旋鎖只有在內核可搶佔式或SMP的情況下才真正需要,在單CPU且不可搶佔式的內核下,自旋鎖的操作為空操作。自旋鎖適用於鎖使用者保持鎖時間比較短的情況下。

TAG標籤:自旋 互斥 #