Tôi có các goroutine đồng thời muốn nối thêm một cấu trúc (con trỏ đến a) vào cùng một lát. Làm thế nào để bạn viết rằng trong Go để làm cho nó đồng thời an toàn?Đồng thời Golang: cách nối thêm vào cùng một lát từ các goroutines khác nhau
này sẽ được mã đồng thời-không an toàn của tôi, sử dụng một nhóm chờ đợi:
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()
Tôi đoán bạn sẽ cần phải sử dụng đi các kênh truyền hình cho đồng thời an toàn. Bất cứ ai có thể đóng góp một ví dụ?
Tôi tin rằng câu trả lời ở đây trả lời câu hỏi đó cũng: http://stackoverflow.com/questions/18467445/working-with-slices-of-structs-concurrently-using-references/18469210# 18469210 –