當使用Go
中的併發程序時,我們使用var mutex sync.Mutex
,然後如果我們必須寫入執行一些同步代碼塊,我們將調用mutex.Lock()
和mutex.Unlock()
。現在我有些懷疑這裏:sync.Mutex如何在併發Golang程序中工作
1)是否存在的mutex
即只有一個實例,如果正在使用mutex
被鎖定爲CodeBlockA的操作,並在同一時間其他一些goroutine B
必須使用它的一些其他CodeBlockB說還使用mutex
,將goroutine B
屏蔽,直到goroutine A
解除mutex
。
2)有可能我們可以有更多的靜音守護自己的專用代碼塊的實例。
向我們展示一些代碼。 – OneOfOne