|
/**
* 并发编程,map的线程
*/
package main
import (
"sync"
"time"
"fmt"
)
var data map[int]int = make(map[int]int)
var wgMap sync.WaitGroup = sync.WaitGroup{}
var muMap sync.Mutex = sync.Mutex{}
func main() {
// 并发启动的协程数量
max := 10000
wgMap.Add(max)
time1 := time.Now().UnixNano()
for i := 0; i < max; i++ {
go modifySafe(i)
}
wgMap.Wait()
time2 := time.Now().UnixNano()
fmt.Printf("data len=%d, time=%d", len(data), (time2-time1)/1000000)
}
// 线程
func modifySafe(i int) {
//muMap.Lock()
data[i] = i
//muMap.Unlock()
wgMap.Done() |
|