Почему 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
что спасет горутин от смерти?