Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: golang, concurrency

Что такое “fan-in” и “fan-out” в Go-конкурентности, и как их использовать для обработки задач?

Проверяет понимание работы с каналами и шаблонов конкурентности.

Короткий ответ

Fan-out — распределение задач между несколькими воркерами.

Fan-in — объединение результатов из нескольких горутин в один канал.

Используются для параллелизации обработки и агрегации результатов.

Длинный ответ

Fan-out:

  • одна входящая очередь задач

  • множество воркеров читают задачи параллельно

  • каждый воркер выполняет обработку

for i := 0; i < workers; i++ {
    go func() {
        for job := range jobs {
            results <- process(job)
        }
    }()
}

Fan-in:

  • несколько источников результатов

  • один объединяющий канал

  • агрегатор читает все результаты

go func() {
    wg.Wait()
    close(results)
}()

Преимущества:

  • равномерная загрузка CPU

  • ускорение тяжёлых операций

  • контролируемый параллелизм

Используется в:

  • обработке HTTP задач

  • парсинге файлов

  • массовых запросах к БД/API

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Golang

    Golang

Ключевые слова

#golang

#concurrency

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.