golang多个routine操作map或者slice的多线程安全问题

由于map、slice为引用类型,所以即使函数传值调用,参数副本依然指向映射m/切片s, 所以n个goroutine并发写同一个映射m/切片s, 写过多线程程序的童鞋都知道,对于共享变量,资源,并发读写会产生竞争的, 故共享资源遭到破坏, 所以要么加锁, 要么用channel排队串行化, 总之要排他访问。
所以切记: 多goroutine读写同一个映射或者切片时, 要保护哟, 加锁也可, 利用channel串行化处理也可!!!

猜你喜欢

转载自blog.csdn.net/weixin_42117918/article/details/85872695