🟡 Средний · 2 очк. Паттерны проектирования
Что такое fan-out в контексте каналов Go?
A Распределение задач из одного канала между несколькими горутинами-обработчиками
B Объединение нескольких каналов в один
C Создание цепочки каналов для пошаговой обработки
D Широковещательная рассылка одного значения всем подписчикам
Объяснение вопроса

Fan-out (разветвление) - один канал с задачами читается несколькими горутинами. Кто первый прочитал - тот обработал. Каждое значение из канала получает только одна горутина.

jobs := make(chan string)
for i := 0; i < 3; i++ {
    go func(id int) {
        for j := range jobs {
            fmt.Printf("worker %d: %s\n", id, j)
        }
    }(i)
}
for _, j := range []string{"a", "b", "c"} { jobs <- j }
close(jobs)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.