关于sync.RWMutex读写锁的问题

yanyiwu · · 2973 次点击
Hello。 g = Tmp{rand.Intn(100), "123", rand.Float64()} 上面这行代码,当你进行赋值的时候,在计算机的底层要分成好几步,对吧。如果g还没有开辟空间,正好进行了读操作,这个时候就可能crash了。我这么说,你能明白吗?发生这种情况,在测试情况下,出现就是低概率事件,所以对于考虑你的代码,你应该考虑的更多的是原子操作的问题,如果上述代码整个是一个原子操作,就不会有任何问题了,对吧。
#4
更多评论
polaris
社区,需要你我一同完善!
并发程序结果具有不可预测性,而且,并不是说不安全程序就得挂掉。即使一次运行,结果没有问题,也不代表真的没有问题。你这个代码是有问题的。
#1
很好,其实我也是这么想的。
#2