Skip to content

Instantly share code, notes, and snippets.

@emretanriverdi
Created February 16, 2021 11:10
Show Gist options
  • Save emretanriverdi/05b7a5df20d117597a68e21cb0ca73fa to your computer and use it in GitHub Desktop.
Save emretanriverdi/05b7a5df20d117597a68e21cb0ca73fa to your computer and use it in GitHub Desktop.
concurrent-map-right.go
func getContentDetails(contentIds []int) {
var wg sync.WaitGroup
var mutex sync.Mutex
var result = make(map[int][]Content, len(contentIds))
wg.Add(len(contentIds))
for _, contentId := range contentIds {
go func(result map[int][]Content, contentId int,
wg *sync.WaitGroup, mutex *sync.Mutex) {
defer wg.Done()
content := service.GetContent(contentId)
mutex.Lock()
result[contentId] = content
mutex.Unlock()
fmt.Println("Done!")
}(result, contentId, &wg, &mutex)
}
wg.Wait()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment