Senior
¿Para qué se utiliza el contexto? ¿Cómo se utilizó en la práctica?
sobes.tech AI
Respuesta de la IA
En Go, context se utiliza para transmitir señales de cancelación, límites de tiempo y otros valores entre goroutines, especialmente al trabajar con solicitudes, tiempos de espera y cancelaciones de operaciones.
Aplicación práctica:
- Cancelar operaciones largas al cerrar una solicitud HTTP.
- Transmitir un límite de tiempo para que una operación no dure más del tiempo establecido.
- Transmitir metadatos (por ejemplo, identificadores de solicitudes) a través de la cadena de llamadas.
Ejemplo de uso:
func handler(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
fmt.Println("Operación completada")
case <-ctx.Done():
fmt.Println("Operación cancelada")
}
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
handler(ctx)
}
Aquí, la operación se interrumpirá después de 2 segundos, incluso si está diseñada para durar 5.