### 如题,白白浪费我几天时间,偶发的并发bug不少,看我上篇文章就出现了各种bug,就不说了,现在来说个一定会出现的bug, ### 下面的代码在1.14.1版本是会报错的,结果不为1,但是我卸载后重新安装1.13.9之后就可以正常执行了!当然也可能是我的电脑原因,求大伙验证! ``` package main import ( "fmt" "sync" ) var wg sync.WaitGroup func main() { var m sync.Map for i := 0; i < 65536; i++ { m.Store(1, 1) } wg.Add(2) go Add(m) go sub(m) wg.Wait() fmt.Println(m.Load(1)) } func Add(m sync.Map) { for i := 0; i < 10000; i++ { value, _ := m.Load(1) v := value.(int) v += 1 m.Store(1, v) } wg.Done() } func sub(m sync.Map) { for i := 0; i < 10000; i++ { value, _ := m.Load(1) v := value.(int) v -= 1 m.Store(1, v) } wg.Done() } ``` ### 不出意外的话,上面的额结果不会绝对是1 !!!大伙可以试试!我就不去PR了! ### 似乎1.13.9也会出现,可能真是我的电脑环境问题了!
有疑问加站长微信联系(非本文作者))
