Back to questions
Junior — Middle
91
Каким образом горутина узнает, что ей передан сигнал о завершении через контекст?
Answer from AI
sobes.tech AI
Горутина получает сигнал о завершении через контекст с помощью канала, который предоставляет объект context.Context. Обычно используется метод Done(), который возвращает канал, закрывающийся при отмене контекста. Горутина может в цикле или select слушать этот канал и реагировать на его закрытие, что означает сигнал о завершении или отмене операции.
Пример:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Контекст отменён, завершаем работу
fmt.Println("Горутина завершена")
return
// другие кейсы
}
}()
// где-то позже вызываем cancel(), чтобы сигнализировать о завершении
cancel()