Mam równoczesne goroutines, które chcą dołączyć (wskaźnik do a) struct do tego samego plasterka. Jak piszesz to w Go, aby zapewnić bezpieczeństwo współbieżności?Golang concurrency: jak dołączyć do tego samego plasterka z różnych goroutines
To byłaby moja współbieżności-niebezpieczny kod, wykorzystując grupę oczekiwania:
var wg sync.WaitGroup
MySlice = make([]*MyStruct)
for _, param := range params {
wg.Add(1)
go func(param string) {
defer wg.Done()
OneOfMyStructs := getMyStruct(param)
MySlice = append(MySlice, &OneOfMyStructs)
}(param)
}
wg.Wait()
Chyba trzeba by użyć przejść kanałów współbieżności-bezpieczeństwo. Czy ktokolwiek może przyczynić się do przykładu?
Uważam, że odpowiedź na to pytanie odpowiada tu dobrze: http://stackoverflow.com/questions/18467445/working-with-slices-of-structs-concurrently-using-references/18469210# 18469210 –