РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1367 of 1593 menu

Метод context.Context.Deadline

Метод Context.Deadline возвращает крайний срок, до которого должен быть завершен контекст, и булево значение, указывающее, установлен ли этот срок. Если срок установлен, метод возвращает время и true, иначе - нулевое время и false.

Синтаксис

deadline, ok := ctx.Deadline()

Пример

Давайте создадим контекст с крайним сроком и проверим, установлен ли он:

package main import ( "context" "fmt" "time" ) func main() { ctx, cancel := context.WithDeadline( context.Background(), time.Now().Add(5*time.Second), ) defer cancel() deadline, ok := ctx.Deadline() fmt.Printf("deadline: %v, ok: %v\n", deadline, ok) }

Результат выполнения кода:

"deadline: 2026-09-04 15:30:25.123456 +0300 MSK, ok: true"

Пример

Проверим, что возвращает метод для контекста без крайнего срока:

package main import ( "context" "fmt" ) func main() { ctx := context.Background() deadline, ok := ctx.Deadline() fmt.Printf("deadline: %v, ok: %v\n", deadline, ok) }

Результат выполнения кода:

"deadline: 0001-01-01 00:00:00 +0000 UTC, ok: false"

Как видно из примера, для контекста без крайнего срока возвращается нулевое время и false.

Пример

Используем крайний срок для ограничения времени выполнения операции:

package main import ( "context" "fmt" "time" ) func main() { ctx, cancel := context.WithDeadline( context.Background(), time.Now().Add(2*time.Second), ) defer cancel() select { case <-time.After(3 * time.Second): fmt.Println("Operation completed") case <-ctx.Done(): fmt.Println("Operation canceled:", ctx.Err()) } }

Результат выполнения кода:

"Operation canceled: context deadline exceeded"

Смотрите также

  • метод Context.Done,
    который возвращает канал для ожидания отмены контекста
  • метод Context.Err,
    который возвращает причину отмены контекста
  • функцию WithDeadline,
    которая создает контекст с крайним сроком
  • функцию WithTimeout,
    которая создает контекст с таймаутом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить