Пакет context в Go — это базовый инструмент для управления жизненным циклом конкурентных операций. Он предоставляет стандартный способ работы с дедлайнами, сигналами отмены и значениями, привязанными к запросу, через горутины и вызовы функций.
Пакет context необходим в таких ситуациях:
Пакет предоставляет несколько ключевых функций:
context.Background() — создаёт корневой, не отменяемый контекстcontext.WithCancel() — позволяет явно отменить операциюcontext.WithDeadline() — устанавливает абсолютное ограничение по времениcontext.WithTimeout() — устанавливает относительное ограничение по времениcontext.WithValue() — присоединяет данные, привязанные к запросуВсегда передавай context как первый параметр в сигнатурах функций. Эта конвенция обеспечивает согласованность и ясно показывает намерение другим разработчикам. Значения контекста стоит использовать экономно и только для данных, привязанных к запросу, не для опциональных параметров функции.
Используя пакет context эффективно, ты можешь избежать утечек горутин, обеспечить своевременную очистку ресурсов и построить более надёжные конкурентные приложения, которые изящно обрабатывают таймауты и отмены.
Функция context.Background() создает отменяемый контекст, который используется как корневой контекст для всех операций в приложении.
Новый — ещё не проверен сообществом
Вы