golang查看是否并发资源竞争
☁ test3 go run --trace main.go
flag provided but not defined: -trace
usage: go run [build flags] [-exec xprog] package [arguments...]
Run 'go help run' for details.
☁ test3 go run -race main
package main is not in GOROOT (/usr/local/go/src/main)
☁ test3 go run -race main.go
==================
WARNING: DATA RACE
Read at 0x00c0000be018 by goroutine 8:
main.main.func1()
/Users/mac/www/go/test3/main.go:17 +0xb6
Previous write at 0x00c0000be018 by goroutine 7:
main.main.func1()
/Users/mac/www/go/test3/main.go:17 +0xc8
Goroutine 8 (running) created at:
main.main()
/Users/mac/www/go/test3/main.go:14 +0x8f
Goroutine 7 (running) created at:
main.main()
/Users/mac/www/go/test3/main.go:14 +0x8f
==================
342605
Found 1 data race(s)
exit status 66
package main
import (
"fmt"
"sync"
)
func main() {
var count int = 0
var wg sync.WaitGroup
wg.Add(10)
for i := 0; i < 10; i++ {
go func() {
defer wg.Done()
for j := 0; j < 100000; j++ {
count++
}
}()
}
wg.Wait()
fmt.Println(count)
}

浙公网安备 33010602011771号