При GOMAXPROCS(1) горутина в тугом цикле пишет по указателю, а main через 150 мс читает переменную. Что напечатает программа с учётом вытесняющей многозадачности? Что не так с кодом?
GOMAXPROCS(1)
main
1package main2 3import (4 "fmt"5 "runtime"6 "time"7)8 9func raceByPointer() {10 runtime.GOMAXPROCS(1)11 12 counter := 013 go func(p *int) {14 for n := 1; n <= 30000000000; n++ {15 *p = n16 }17 }(&counter)18 19 time.Sleep(150 * time.Millisecond)20 fmt.Printf("counter = %d.\n", counter)21}22 23func main() {24 raceByPointer()25}