golang map线程不安全 会竞争
package main
import (
	"fmt"
	"sync"
)
var (
	mp = make(map[int]uint64)
	wg sync.WaitGroup
	mux sync.Mutex
)
func main() {
	for i := 1; i <= 20; i++ {
		wg.Add(1)
		go test(i)
	}
	mux.Lock()
		fmt.Println(mp)
	mux.Unlock()
	wg.Wait()
}
func test(n int)  {
	wg.Done()
	var res uint64
	res = 1
	for i := 1; i <= n; i++ {
		res  = res * uint64(i)
	}
	mux.Lock()
	mp[n] = res
	mux.Unlock()
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号