Senior
¿Has utilizado contextos en la práctica? Cuéntame.
sobes.tech AI
Respuesta de la IA
Sí, he utilizado regularmente contextos en Go, especialmente para gestionar el tiempo de ejecución y cancelar operaciones en solicitudes de red y goroutines. El contexto permite transmitir señales de cancelación y límites de tiempo a través de la cadena de llamadas, lo que ayuda a evitar fugas de goroutines y controlar el tiempo de ejecución.
Ejemplo de uso:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case <-time.After(3 * time.Second):
fmt.Println("operación completada")
case <-ctx.Done():
fmt.Println("operación cancelada o agotada")
}
De esta manera, si la operación tarda más de 2 segundos, será interrumpida, lo que aumenta la robustez y la capacidad de respuesta de la aplicación.