12 000 «сетевых вызовов» в горутинах

Что выведетJuniorпроверка — Спринт08-t009

Каждая горутина имитирует сетевой вызов (Sleep 1 мс) и увеличивает счётчик. Что выведет программа и сколько она будет выполняться?

main.gogo
1package main2 3import (4	"fmt"5	"time"6)7 8const numCalls = 12_0009 10var done int11 12func remoteCall() {13	time.Sleep(time.Millisecond) // имитация сетевого вызова14 15	done++16}17 18func main() {19	for i := 0; i < numCalls; i++ {20		go func() {21			remoteCall()22		}()23	}24 25	fmt.Println(done)26}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.