共享变量的拷贝和append操作线程不安全,导致map被多个协程操作,引发panic。

go语言的原生map引发的一个坑
go语言原生map引发的一个坑 总所周知,go语言原生的map并不是并发安全的,所以为了保证map的并发安全,最简单的方式就是给map加一个锁。 年初写项目的时候,刚接触go语言,冒冒失失的就写出了类似下面这样的代码: package problem import ( "fmt" "sync" ) type dict struct { m map[int]string lock sync.RWMutex } func NewDict() *dict { return &dict{m: map[int]string{}} } func (d dict) Set(....