Senior
Да ли си користио контексте у пракси? Испричај.
sobes.tech АИ
Одговор од АИ
Да, редовно сам користио контексте у 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 секунде, биће прекинута, што повећава робусност и одзивност апликације.