沒(méi)有那么多長(zhǎng)篇大論璃饱,按自己的理解簡(jiǎn)單寫(xiě)了下異同。
相同點(diǎn)
都可以用作某一個(gè)資源的多線(xiàn)程互斥操作
不同點(diǎn)
- 自旋鎖在lock之后直接進(jìn)入的是循環(huán)判斷狀態(tài)筋蓖,這時(shí)候會(huì)不停的偵查綁定的鎖的狀態(tài),一旦別的線(xiàn)程釋放了該鎖,本線(xiàn)程會(huì)繼續(xù)執(zhí)行雕蔽,這種情況多用于多處理器的情況,因?yàn)檠h(huán)等待判斷是一直占用cpu的宾娜,對(duì)cpu消耗很大
- 互斥鎖跟自旋鎖的不同就是在lock時(shí)候批狐,如果別的線(xiàn)程已經(jīng)lock了同一個(gè)鎖,那么本線(xiàn)程會(huì)進(jìn)入wait狀態(tài),不會(huì)占用cpu嚣艇,直到鎖被釋放承冰,就會(huì)呼起本線(xiàn)程