1. 程式人生 > >golang多個routine操作map或者slice的多執行緒安全問題

golang多個routine操作map或者slice的多執行緒安全問題

由於map、slice為引用型別,所以即使函式傳值呼叫,引數副本依然指向對映m/切片s, 所以n個goroutine併發寫同一個對映m/切片s, 寫過多執行緒程式的童鞋都知道,對於共享變數,資源,併發讀寫會產生競爭的, 故共享資源遭到破壞, 所以要麼加鎖, 要麼用channel排隊序列化, 總之要排他訪問。
所以切記: 多goroutine讀寫同一個對映或者切片時, 要保護喲, 加鎖也可, 利用channel序列化處理也可!!!