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