go mutex阻塞執行緒嗎,如果不阻塞,為什麼呢?

時間 2022-01-09 21:48:56

1樓:鵬鵬李李

你說的是sync.Mutex吧(buildin內部還有乙個mutex,不過這個是純自旋鎖)

Lock()方法,內部實現了復合鎖(自旋鎖+互斥鎖)

先自旋,runtime.spin(),自旋階段,該Mutex會被其他多個協程競爭

自旋如果超過一定次數(通常是16次)還未能獲得鎖的持有,則進入互斥鎖模式,呼叫goyield/osyield讓出時間片,也就導致了你的協程/執行緒的阻塞

想象一下,如果有n個協程同時執行Lock方法,不同的鎖競爭者有的處於自旋階段,有的處於互斥階段,但最終結果就是,只有獲得了鎖的協程可以繼續執行,其他鎖競爭者協程都被阻塞了。只是阻塞的時間週期不同而已。

自旋鎖和互斥鎖的組合,提高了CPU利用率

另外,Mutex互斥鎖具有排隊的屬性,後來後得,也就是公平模式

Mutex的自旋鎖具有競爭模式,也就是後來也可以先得,也就是非公平模式

這兩張模式結合,避免了後來的鎖競爭協程處於飢餓狀態

如果不結婚可以嗎?

未婚禮人 先扣題,不結婚可以嗎?我覺得我可以!但我不敢說你可不可以。你在提問的這一刻,想到那麼多的可能和不可預知的未來,然後恐懼結婚。我可以想像,過一段不確定的時間以後,你一樣會恐懼結不了婚會如何如何,比如 怕乙個人孤獨,怕家裡人催促,怕別人異樣的眼光,怕被別人欺負,怕沒人保護,怕 所以,把思維桎梏...

出軌違法嗎?如果不,那為什麼不違法?

已知 明確的告訴你,出軌不違法。雖然看上去好像違反婚姻法,但是並沒有具體的懲罰措施。至於,離婚,只要你想離,不需要理由,去法院起訴,肯定可以離婚的。所以,我認為,這算起來,不違法。難道我不尊重老人也違法嗎?追究 婚姻法 上面這些字眼沒意思。你只要知道,是否出軌不用受到處罰即可。至於離婚,要考慮的因素...

如果考到注會不上班有錢嗎?

註冊會計師 這個就有點想多了,證書是能力的證明,但是它的價值還是需要自己的發掘,不能說,這個證書很厲害,考完之後就可以坐著收錢了,這是不現實的,當然很多人會說可以 掛靠 啊,高頓CPA不建議這麼做,因為如果發生以外,需要個人承擔責任。註冊會計師本身是個比較難考的證書,能夠考出來的人,也說明的專業能力...