spinlock是一種死等的鎖機制,當發(fā)生訪問資源沖突的時候,后執(zhí)行獲取鎖操作的進程會一直執(zhí)行獲取鎖的操作,指導獲取鎖成功,進入臨界區(qū),該現(xiàn)象也叫自旋。
同時獲取自旋鎖成功后會屏蔽進程搶占。
所以spinlock只允許一個進程進入臨界區(qū),所以spinlock可以在中斷上下文使用。
進程在獲取信號量成功后,不會屏蔽進程的搶占,如果某個進程獲取信號量失敗,該進程不會一直執(zhí)行,而是會切換進程狀態(tài)到可中斷的休眠態(tài)。