我使用协程,handle函数内对
map
读写
//全局变量
var map map[string]string
assign := averageAssign(epsTree, 3)
var wg sync.WaitGroup
wg.Add(3)
for i, _ := range assign {
go handle(assign[i], i, &wg)
}
wg.Wait()
修复:
type UMap struct {
sync.RWMutex
Map map[string]string
}
var umap *UMap
umap = &UMap{
Map: make(map[string]string),
}
//读
func (l *UMap) readMap(key string) (string, bool) {
l.RLock()
value, ok := l.Map[key]
l.RUnlock()
return value, ok
}
//写
func (l *UMap) writeMap(key string, value string) {
l.Lock()
l.Map[key] = value
l.Unlock()
}