Junior — Middle
133
Wie erkennt die Goroutine, dass ihr ein Abbruchsignal über den Kontext gesendet wurde?
Antwort von AI
sobes.tech KI
Горутина получает сигнал о завершении через контекст с помощью канала, который предоставляет объект context.Context. Обычно используется метод Done(), который возвращает канал, закрывающийся при отмене контекста. Горутина может в цикле или select слушать этот канал и реагировать на его закрытие, что означает сигнал о завершении или отмене операции.
Пример:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Контекст отменён, завершаем работу
fmt.Println("Горутина завершена")
return
// другие кейсы
}
}()
// где-то позже вызываем cancel(), чтобы сигнализировать о завершении
cancel()