2 回答

TA貢獻1874條經(jīng)驗 獲得超12個贊
正如評論中指出的那樣,您需要同步對地圖的訪問并且您的使用sync.WaitGroup不正確。
試試這個:
func main() {
squares := make(map[int]int)
var lock sync.Mutex
var wg sync.WaitGroup
for i := 1; i <= 10; i++ {
wg.Add(1) // Increment the wait group count
go func(n int, s map[int]int) {
lock.Lock() // Lock the map
s[n] = n * n
lock.Unlock()
wg.Done() // Decrement the wait group count
}(i, squares)
}
wg.Wait()
fmt.Println("Squares::: ", squares)
}

TA貢獻1802條經(jīng)驗 獲得超4個贊
sync.Map是您實際要查找的內(nèi)容,在此處修改代碼以適合您的用例,
PS 必須添加一些睡眠,以便在調(diào)用所有 go 例程之前程序不會完成。
- 2 回答
- 0 關注
- 144 瀏覽
添加回答
舉報