我正在嘗試在 Go 中實(shí)現(xiàn)并發(fā)安全映射。我已經(jīng)使用下面的互斥體完成了它。首先,這是使用互斥鎖的好方法嗎?或者我應(yīng)該以不同的方式使用同步包?其次,我怎么能做同樣的事情,而不是使用通道呢?func main(){ var wg sync.WaitGroup m := make(map[int]int) var mu sync.Mutex wg.Add(1) wg.Add(1) go func(){ defer wg.Done() mu.Lock() m[1] = 1 mu.Unlock() }() go func(){ defer wg.Done() defer mu.Unlock() for { time.Sleep(1 * time.Second) mu.Lock() if a, ok := m[1]; ok { fmt.Println(a) break } } }() wg.Wait()}
同時(shí)添加和讀取具有通道的地圖
幕布斯7119047
2022-08-09 20:24:30