Sobes.tech
Назад к вопросам
Junior — Middle
92

Каким образом горутина узнает, что ей передан сигнал о завершении через контекст?

Ответ от нейросети

sobes.tech AI

Горутина получает сигнал о завершении через контекст с помощью канала, который предоставляет объект context.Context. Обычно используется метод Done(), который возвращает канал, закрывающийся при отмене контекста. Горутина может в цикле или select слушать этот канал и реагировать на его закрытие, что означает сигнал о завершении или отмене операции.

Пример:

ctx, cancel := context.WithCancel(context.Background())

go func() {
    select {
    case <-ctx.Done():
        // Контекст отменён, завершаем работу
        fmt.Println("Горутина завершена")
        return
    // другие кейсы
    }
}()

// где-то позже вызываем cancel(), чтобы сигнализировать о завершении
cancel()