package main
import (
"fmt"
"runtime"
"sync"
)
var (
count int32
wg sync.WaitGroup
mutex sync.Mutex
)
func main() {
num := 10
wg.Add(num)
for i:=0; i<num;i++{
go incCount(fmt.Sprintf("%s%d", "tom", i))
}
wg.Wait()
fmt.Println(count)
}
func incCount(name string) {
defer wg.Done()
for i := 0; i < 2; i++ {
mutex.Lock()
fmt.Printf("%s 获得 %d\n",name,count)
value := count
runtime.Gosched()
value++
count = value
fmt.Printf("%s 计算后 %d\n",name,count)
mutex.Unlock()
}
}