我加了锁,可还是报错。
fatal error: concurrent map iteration and map write
这是为何呢?百度的各种方法也都试了,都不行。
```go
package main
import (
"fmt"
"sync"
)
func main() {
var counter = struct{
sync.RWMutex
m map[string]int
}{m: make(map[string]int)}
for i := 0; i < 2; i++ {
go func() {
for j := 0; j < 1000000; j++ {
counter.Lock()
counter.m["some_key"]++
counter.Unlock()
}
}()
}
fmt.Println(counter)
}
```
这不是一种好方式。。。在golang里也有类似java里面的 ConcurrentHashMap 。
自己加锁非常耗性能。功能上可以实现。一旦高并发,会发生阻塞点。。
给你推荐个极品方案
https://github.com/orcaman/concurrent-map
#6
更多评论