Пользователь запустил копирование в горутине. Какие средства Go используются для обмена данными?

Для передачи прогресса и результата между горутинами подходят каналы; для отмены — context, для ожидания — WaitGroup, для общего состояния — mutex или атомики.

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

Что ответить на собеседовании

Для передачи прогресса и результата между горутинами подходят каналы; для отмены — context, для ожидания — WaitGroup, для общего состояния — mutex или атомики.

Подробный разбор

Ответ с пояснениями

Для передачи прогресса и результата между горутинами подходят каналы; для отмены — context, для ожидания — WaitGroup, для общего состояния — mutex или атомики.

Разделите назначение механизмов: WaitGroup сам по себе не передаёт ошибку, а context не хранит результат копирования. Определите владельца закрытия канала и поведение при медленном читателе. Если прогресс не должен тормозить копирование, можно хранить последнее значение или пропускать промежуточные уведомления, сохранив обязательный финальный результат.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее