当使用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