Junior — Middle
¿Cuál es el objetivo de usar contextos hijos en el sistema?
sobes.tech AI
Respuesta de la IA
En Go, los contextos hijos (child contexts) se crean a partir de los contextos padres mediante las funciones context.WithCancel, context.WithTimeout o context.WithDeadline. El objetivo de usar contextos hijos:
- Gestión del tiempo de vida de las operaciones: el contexto hijo puede cancelarse independientemente del padre, lo que permite controlar la ejecución de tareas específicas.
- Transmisión de señales de cancelación: si el contexto padre se cancela, todos los hijos también se cancelan, asegurando la finalización en cascada de las operaciones relacionadas.
- Agregar restricciones: por ejemplo, establecer un tiempo de espera o un plazo límite para el contexto hijo sin modificar el padre.
Ejemplo:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
// ctx — contexto hijo con un tiempo de espera de 5 segundos
go func(ctx context.Context) {
select {
case <-time.After(10 * time.Second):
fmt.Println("Operación completada")
case <-ctx.Done():
fmt.Println("Operación cancelada o agotada")
}
}(ctx)
// Se puede llamar a cancel() para cancelar manualmente el contexto hijo
De esta manera, los contextos hijos permiten gestionar de forma flexible el tiempo de vida y la cancelación de operaciones en una jerarquía de tareas.