Go
で並行プログラムを使用する場合、var mutex sync.Mutex
を使用し、同期コードブロックを実行する必要がある場合は、mutex.Lock()
とmutex.Unlock()
を呼び出します。今私はここにいくつかの疑問を持っている:sync.Mutexは同時実行のGolangプログラムでどのように動作するのですか
1)mutex
はCodeBlockAの操作にロックするために使用されている場合mutex
すなわちのインスタンスが1つだけあり、および他のいくつかのgoroutine B
は、いくつかの他のCodeBlockBのためにそれを使用するために持っていると同時に、そのまた、mutex
を使用します。goroutine B
は、goroutine A
の緩和mutex
までブロックされます。
2)独自の専用コードブロックを保護している可能性があります。
私たちにいくつかのコードを示しています。 – OneOfOne