Sobes.tech
Senior

Използвал ли си контексти на практика? Разкажи.

sobes.tech AI

Отговор от AI

Да, аз редовно използвах контексти в Go, особено за управление на времето за изпълнение и отменяне на операции в мрежови заявки и горутини. Контекстът позволява предаване на сигнали за отменяне и времеви ограничения чрез веригата от извиквания, което помага да се избегнат течове на горутини и да се контролира времето за изпълнение.

Пример за използване:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case <-time.After(3 * time.Second):
    fmt.Println("операцията е завършена")
case <-ctx.Done():
    fmt.Println("операцията е отменена или изтекла")
}

По този начин, ако операцията отнеме повече от 2 секунди, тя ще бъде прекратена, което повишава устойчивостта и реактивността на приложението.