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