правильный способ ожидания рутины, чтобы закончить
Я хочу знать, как правильно дождаться окончания процедуры перед выходом из программы. Читая некоторые другие ответы, кажется, что Бул Чан добьется цели, как вСсылка на игровую площадку
func do_stuff(done chan bool) {
fmt.Println("Doing stuff")
done <- true
}
func main() {
fmt.Println("Main")
done := make(chan bool)
go do_stuff(done)
<-done
//<-done
}
У меня есть два вопроса здесь:
почему <- сделано вообще работает?
что произойдет, если я раскомментирую последнюю строку? У меня ошибка тупика. Это потому, что канал пуст, и нет другой функции, посылающей ему значения?