|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
var value int
|
|
var m sync.Mutex
|
|
var wg sync.WaitGroup
|
|
|
|
func slowInc() {
|
|
m.Lock()
|
|
v := value
|
|
time.Sleep(1e8)
|
|
value = v+1
|
|
m.Unlock()
|
|
wg.Done()
|
|
}
|
|
|
|
func main() {
|
|
wg.Add(2)
|
|
go slowInc()
|
|
go slowInc()
|
|
wg.Wait()
|
|
fmt.Println(value)
|
|
}
|