Junior — Middle
In what modes does the mutex mechanism operate?
sobes.tech AI
Answer from AI
The mutual exclusion mechanism (Mutex) in Go operates in two main modes:
-
Locked — when one goroutine acquires the mutex, other goroutines attempting to acquire the same mutex are blocked and wait for it to be released.
-
Unlocked — when the mutex is free and available for acquisition.
Mutex provides exclusive access to shared resources, preventing multiple goroutines from executing critical sections of code simultaneously.
Example usage:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // acquire the mutex
defer mu.Unlock() // release the mutex after execution
counter++
}
Thus, the mutex operates in locking and unlocking modes, ensuring sequential access to data.