Junior — Senior
96
Устранить panic при попытке записи в уже закрытый канал
被问到的公司:
Lamoda Tech
任务条件
В данном примере программа падает с panic: send on closed channel, потому что главный поток закрывает канал ch, не дождавшись завершения горутины, которая в это время пытается записать в канал. Требуется изменить поведение так, чтобы программа завершалась корректно, например, дождаться завершения горутины перед закрытием канала.
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan int)
go func() {
ch <- 1
}()
time.Sleep(time.Millisecond * 500)
close(ch)
for i := range ch {
fmt.Println(i)
}
time.Sleep(time.Millisecond * 100)
}