Какие виды контекста вы знаете?
Ответ от нейросети
sobes.tech AI
В Go контекст (context.Context) используется для передачи сигналов отмены, дедлайнов и значений между горутинами и функциями.
Основные виды контекста:
-
Background — базовый контекст, обычно используется как корневой при запуске приложения или горутины.
-
TODO — используется, когда контекст еще не определен или будет добавлен позже.
-
С контекстом отмены (
WithCancel) — позволяет отменить операции, когда вызывается функция отмены. -
С контекстом с дедлайном (
WithDeadline) — автоматически отменяется по истечении заданного времени. -
С контекстом с таймаутом (
WithTimeout) — упрощенный вариант с дедлайном, где задается время ожидания. -
С контекстом с значениями (
WithValue) — позволяет передавать данные (например, идентификаторы запросов) по цепочке вызовов.
Пример создания контекста с таймаутом:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
// использовать ctx в запросах или горутинах
Контекст помогает управлять временем жизни операций и отменять их при необходимости, что важно для написания надежного и отзывчивого кода.