自旋鎖和互斥鎖的區别是:
自旋鎖與互斥鎖有點類似,隻是自旋鎖不會引起調用者睡眠,如果自旋鎖已經被别的執行單元保持,調用者就一直循環在那裡看是否該自旋鎖的保持者已經釋放了鎖,“自旋”一詞就是因此而得名。其作用是為了解決某項資源的互斥使用。因為自旋鎖不會引起調用者睡眠,所以自旋鎖的效率遠高于互斥鎖。雖然它的效率比互斥鎖高。
自旋鎖一直占用CPU,他在未獲得鎖的情況下,一直運行--自旋,所以占用着CPU,如果不能在很短的時間内獲得鎖,這無疑會使CPU效率降低。在用自旋鎖時有可能造成死鎖,當遞歸調用時有可能造成死鎖,調用有些其他函數也可能造成死鎖,因此要慎重使用自旋鎖,自旋鎖隻有在内核可搶占式或SMP的情況下才真正需要,在單CPU且不可搶占式的内核下,自旋鎖的操作為空操作。自旋鎖适用于鎖使用者保持鎖時間比較短的情況下。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!