Junior — Middle
¿Cómo sabe la goroutine que se le ha enviado una señal de finalización a través del contexto?
sobes.tech AI
Respuesta de la IA
La gorutina recibe la señal de finalización a través de un contexto mediante un canal, que proporciona el objeto context.Context. Normalmente se usa el método Done(), que devuelve un canal que se cierra cuando se cancela el contexto. La gorutina puede escuchar este canal en un ciclo o select y reaccionar a su cierre, lo que indica una señal de finalización o cancelación de la operación.
Ejemplo:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// El contexto ha sido cancelado, finalizando
fmt.Println("Gorutina finalizada")
return
// otros casos
}
}()
// en algún momento más tarde, llamamos a cancel() para señalizar la finalización
cancel()