Junior — Middle
110
Context.WithTimeout функциясы неге екі мән қайтарады және олар уақытша шектеуді өңдеуде қалай пайдаланылады?
AI-дан жауап
sobes.tech AI
Функция context.WithTimeout в Go возвращает два значения:
- Новый контекст (
Context), который автоматически отменяется через заданный таймаут. - Функцию отмены (
CancelFunc), которую можно вызвать для преждевременного завершения работы с контекстом.
Использование:
- Новый контекст используется для контроля времени выполнения операций — если время истекает, контекст отменяется, и связанные с ним операции получают сигнал отмены.
- Функция отмены вызывается для освобождения ресурсов, связанных с контекстом, если операция завершилась раньше таймаута.
Пример:
timedCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel() // гарантирует освобождение ресурсов
select {
case <-doWork(timedCtx):
fmt.Println("Работа завершена")
case <-timedCtx.Done():
fmt.Println("Таймаут или отмена")
}
Таким образом, возвращаемые значения позволяют задать ограничение по времени и контролировать отмену операций.