Закрытие канала:
- Широковещательное оповещение всех слушателей
- Не как передача данных ("кто первый встал")
Буферизованный канал при закрытии:
ch := make(chan int, 3)
ch <- 1
ch <- 2
ch <- 3
close(ch)
// Сначала будут прочитаны 1, 2, 3
for v := range ch {
fmt.Println(v)
}Особенности:
- Все горутины получают сигнал о закрытии
- Буферизованный канал сначала отдает накопленные значения