Junior — Senior
48
Конкурентная запись в слайс и роль GOMAXPROCS
Условие задачи
Определите, какое значение будет напечатано программой при запуске на системе с одним ядром и на системе с несколькими ядрами. Учтите, что несколько горутин одновременно изменяют один и тот же элемент слайса, а планировщик Go распределяет их выполнение в зависимости от текущего значения GOMAXPROCS.
func main() {
data := make([]string, 0)
for i := 0; i < 10; i++ {
data = append(data, string(i))
}
go func() { data[1] = "Не знаю" }()
go func() { data[1] = "Не 1" }()
go func() { data[1] = "2" }()
time.Sleep(400 * time.Millisecond)
fmt.Println(data[1])
}