【发布时间】:2021-11-29 08:45:52
【问题描述】:
使用go run. 执行以下程序会产生致命错误,例如
fatal error: concurrent map writes
goroutine 103 [running]:
...
运行时检测到 map 上的恶意访问,但在 slice 上没有检测到
为什么会这样?
这是我写的程序:
package main
import (
"time"
)
func main() {
m := map[string]int{"a":1}
s := []int{1}
for i := 0; i < 1000; i++ {
go func() {
m["a"] = i
s[0] = i
}()
}
time.Sleep(3 * time.Second)
}
【问题讨论】:
标签: dictionary go concurrency