Почему time.sleep требуется для запуска определенных программ?

В уроке GO у нас есть этот слайд:Goroutines

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}

func main() {
    go say("world")
    say("hello")
}

Запуск этого кода дает ожидаемые результаты ("Мир" а также "Привет" записано на экран взаимозаменяемо 5 раз).

Однако, если мы закомментируемtime.Sleep (и, следовательно,"time" строка импорта) и снова запустите программу, мы остались столько "Привет" записано на экран пять раз.

Что так важно вtime.Sleep что спасет горутин от смерти?

Ответы на вопрос(3)

Ваш ответ на вопрос