Ich habe gleichzeitige goroutines, die eine (Zeiger auf a) struct an die gleiche Scheibe anhängen möchten. Wie schreibt man das in Go, um es nebenläufigkeitssicher zu machen?Golang Nebenläufigkeit: wie an die gleiche Scheibe aus verschiedenen goroutines anhängen
Dies würde meine Concurrency-unsicheren Code sein, eine Wartegruppe mit:
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()
Ich denke, man würde Kanäle für Concurrency-Sicherheit verwenden müssen. Kann jemand mit einem Beispiel dazu beitragen?
Ich glaube, die Antwort hier beantwortet diese Frage gut: http://stackoverflow.com/questions/18467445/working-with-slices-of-structs-concurrently-using-references/18469210# 18469210 –