恩出现了个崩溃,说并发读写 map 在
json.Marshal(v)
看了下,是 v 的内容有 map 字段
那么如果 json.Marshal(v)中,v 是个接口,那么出于防御性编程的考虑,是不是要做个锁来保护?
|  |      1VeryCB      2017-12-24 14:57:08 +08:00 | 
|  |      2mornlight      2017-12-24 16:06:29 +08:00  1 map 不是 goroutine 安全的,你这种就是设计错了,不叫防御性编程。 | 
|      3flowerwrong      2017-12-24 17:49:23 +08:00 via iPhone 加锁或者 golang1.9 的 sync.map | 
|      4honeycomb      2017-12-24 18:07:56 +08:00 via Android 很多 map 的默认实现不支持多线程读写,所以往往需要上锁。 考虑使用专门为并发设计的 map 实现,它们可能比仅是加锁有更好的性能。 | 
|  |      5gamexg      2017-12-24 19:12:15 +08:00 印象现在 map 并发读都不一定多线程安全了。 |