This commit is contained in:
zikwall
2021-02-09 15:30:08 +03:00
parent 64b3081bf6
commit 2ead0c2373

View File

@@ -100,11 +100,10 @@ for num := range joinChannels(a, b, c) {
Для этого напишем функцию, которая будет асинхронно читать из исходных каналов, которые ей передадут в качестве аргументов, и писать в результирующий канал, который вернется из функции. Для этого напишем функцию, которая будет асинхронно читать из исходных каналов, которые ей передадут в качестве аргументов, и писать в результирующий канал, который вернется из функции.
Создаем канал, куда будем сливать все данные. - Создаем канал, куда будем сливать все данные.
Он будет небуферезированный, потому что мы не знаем, сколько данных придет из каналов. Он будет небуферезированный, потому что мы не знаем, сколько данных придет из каналов.
- Дальше асинхронно прочитаем из исходных каналов и закроем результирующий канал для мерджа, когда все чтение закончится.
Дальше асинхронно прочитаем из исходных каналов и закроем результирующий канал для мерджа, когда все чтение закончится. - Чтобы дождаться конца чтения, просто обернем этот цикл по каналам в wait group.
Чтобы дождаться конца чтения, просто обернем этот цикл по каналам в wait group.
```go ```go
package main package main