Mutex (Mutual Exclusion)
package main
import (
"fmt"
"sync"
)
var wg sync.WaitGroup
var m sync.Mutex
func f(v *int, wg *sync.WaitGroup) {
m.Lock()
*v++
m.Unlock()
wg.Done()
}
func main() {
var v int = 0
for i := 0; i < 1000; i++ {
wg.Add(1)
go f(&v, &wg)
}
wg.Wait()
fmt.Println("Finished", v)
}Last updated