Подготовка к интервью

Вопросы о каналах в Go

25 вопросов с ответами по теме «Каналы в Go»

25 вопросов

Что проверяют на интервью

Как устроена подборка

Подборка о передаче данных и синхронизации горутин через каналы. Вопросы охватывают состояния канала, поведение select, завершение работы и небольшие задачи на конкурентное выполнение.

Каталог

Вопросы по теме

Найдено: 25
Теория

Является ли поведение функции select в Go предсказуемым или случайным?

Поведение функции select в Go частично предсказуемо, но в случае, когда несколько каналов готовы к операции одновременно, выбор канала происходит случайным образом (рандомно).

Читать ответ
Теория

В горутине воркеров можешь описать, что используешь для чтения канала?

В горутине воркеров для чтения из канала обычно используется конструкция for range по каналу. Это позволяет последовательно получать значения из канала до его закрытия, что удобно для обработки задач в воркерах.

Читать ответ
Теория

Как ограничить количество горутин, чтобы одновременно выполнялось не более threads методов Process? Кто будет доставать задачи из канала?

Для ограничения количества одновременно работающих горутин в Go часто используют семафоры или буферизованные каналы.

Читать ответ
Теория

В чём отличие буферизированного канала от небуферизированного и какой быстрее передаёт значение?

Чем отличаются буферизированный и небуферизированный каналы и какой из них быстрее передаёт данные? Каналы Go — средство синхронизации и обмена данными между goroutine Небуферизированный канал не хранит элементы:…

Читать ответ
Теория

Как работает context.Done() и почему закрытие канала получают все горутины?

Как работает context.Done() и почему закрытие канала получают все горутины? context.Done() — канал для наблюдения за отменой контекста возвращает канал, закрываемый при отмене или завершении заданного времени одно…

Читать ответ
Теория

Что делает sync.Cond и когда его лучше выбрать вместо каналов?

Что представляет собой sync.Cond и когда он предпочтительнее каналов? sync.Cond — примитив условной синхронизации в Go с его помощью можно ожидать наступления заданного условия при организации конкурентного выполнения…

Читать ответ
Теория

Что произойдёт при попытке записи в закрытый канал Go?

Что произойдёт при попытке записи в закрытый канал Go? Конкурентность в Go и каналы (channels) отправка данных в закрытый канал приводит к панике (panic) паника представляет собой ошибку runtime, из-за которой…

Читать ответ