Безопасно ли обращаться к различным членам структуры из разных goroutines?
Я понимаю, что запись в одну и ту же переменную без синхронизации dangareous:
package main
type Apple struct {
color string
size uint
}
func main() {
apple := &Apple{}
go func() {
apple.color = "red"
}()
go func() {
apple.color = "green"
}()
}
Но можете ли вы писать для разных членов структуры без какой-либо синхронизации?
package main
type Apple struct {
color string
size uint
}
func main() {
apple := &Apple{}
go func() {
apple.color = "red"
}()
go func() {
apple.size = 42
}()
}
Или я должен использовать chan
или sync.Mutex
для этого?