拉勾教育Go基礎(chǔ)系列互斥鎖Mutex和讀寫鎖RWMutex用法詳述
價(jià)格面議2020-12-02 14:34:45
————認(rèn)證資質(zhì)————
- 個(gè)人已認(rèn)證
- 企業(yè)未認(rèn)證
- 微信未認(rèn)證
- 手機(jī)已認(rèn)證
線上溝通
與商家溝通核實(shí)商家資質(zhì)
線下服務(wù)
核實(shí)商家身份所有交流確保留有證據(jù)
服務(wù)售后
有保障期的服務(wù)請(qǐng)與商家確定保障實(shí)效
拉勾教育Go基礎(chǔ)系列互斥鎖Mutex和讀寫鎖RWMutex用法詳述
sync.Mutex






// A Mutex is a mutual exclusion lock.
// The zero value for a Mutex is an unlocked mutex.
//
// A Mutex must not be copied after first use.
type Mutex struct {
state int32
sema uint32
}
這沒有任何非凡的地方。和mutex相關(guān)的所有事情都是通過sync.Mutex類型的兩個(gè)方法sync.Lock()和sync.Unlock()函數(shù)來完成的,前者用于獲取sync.Mutex鎖,后者用于釋放sync.Mutex鎖。sync.Mutex一旦被鎖住,其它的Lock()操作就無法再獲取它的鎖,只有通過Unlock()釋放鎖之后才能通過Lock()繼續(xù)獲取鎖。
也就是說,已有的鎖會(huì)導(dǎo)致其它申請(qǐng)Lock()操作的goroutine被阻塞,且只有在Unlock()的時(shí)候才會(huì)解除阻塞。
另外需要注意,sync.Mutex不區(qū)分讀寫鎖,只有Lock()與Lock()之間才會(huì)導(dǎo)致阻塞的情況,如果在一個(gè)地方Lock(),在另一個(gè)地方不Lock()而是直接修改或訪問共享數(shù)據(jù),這對(duì)于sync.Mutex類型來說是允許的,因?yàn)閙utex不會(huì)和goroutine進(jìn)行關(guān)聯(lián)。如果想要區(qū)分讀、寫鎖,可以使用sync.RWMutex類型,見后文。




展開更多
排行8提醒您:
1)為了您的資金安全,請(qǐng)選擇見面交易,任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)受騙!
2)確認(rèn)收貨前請(qǐng)仔細(xì)核驗(yàn)產(chǎn)品質(zhì)量,避免出現(xiàn)以次充好的情況。
3)該信息由排行8用戶自行發(fā)布,其真實(shí)性及合法性由發(fā)布人負(fù)責(zé),排行8僅引用以供用戶參考,詳情請(qǐng)閱讀排行8免責(zé)條款。查看詳情>
2)確認(rèn)收貨前請(qǐng)仔細(xì)核驗(yàn)產(chǎn)品質(zhì)量,避免出現(xiàn)以次充好的情況。
3)該信息由排行8用戶自行發(fā)布,其真實(shí)性及合法性由發(fā)布人負(fù)責(zé),排行8僅引用以供用戶參考,詳情請(qǐng)閱讀排行8免責(zé)條款。查看詳情>
lagoujiaoyu
×
-
王琨
請(qǐng)發(fā)送您要咨詢的內(nèi)容,以便及時(shí)解答。
發(fā)送即代表同意《隱私協(xié)議》允許更多優(yōu)質(zhì)供應(yīng)商為您服務(wù)
