Teoría 100 min 62 preguntas
TeoríaPaso 1 de 28

Un publicar() tiene letra pequeña

En las clases anteriores de esta unidad construimos callbacks, listeners, un sujeto observable y un bus de mensajes. Todo funcionaba por una razón que no dijimos en voz alta: los suscriptores se portaban bien. Recibían el aviso, hacían su trabajo y devolvían el control.

Hoy toca lo contrario. Mientras el sujeto recorre su lista, cada suscriptor puede cambiar el sistema que le está llamando.

Sensorpublicar(31 °C)
Dispatcherrecorre la lista
Pantallaturno 1
Sirenaturno 2
Historialturno 3

Qué es una ronda

Una ronda empieza al entrar en publicar() y termina cuando publicar() retorna. Si un suscriptor publica durante su turno, empieza una ronda anidada antes de que acabe la primera.

Ahora imagina que la Pantalla, durante su turno…

  • …da de baja a la Sirena → orden y cambios en la lista (bloque 1).
  • …vuelve a llamar a publicar() → reentrancia y ciclos (bloque 2).
  • …lanza una excepción o tarda 3 segundos → antipatrones (bloque 3).

Las cuatro preguntas de la letra pequeña

1 · Orden

¿Se garantiza que se avisa en el orden de alta?

2 · Altas y bajas en la ronda

¿Afectan a la ronda en curso o a la siguiente?

3 · Reentrancia

¿Se puede publicar desde un suscriptor? ¿Se entrega ya o se encola?

4 · Fallos

Si un suscriptor lanza, ¿se sigue avisando a los demás?

Responde para continuar

0/2
TAREA 1
¿Cuándo termina una ronda de notificación?
Elige una respuesta
TAREA 2
Marca las cuatro preguntas que forman la «letra pequeña» de publicar().
Marca todas las correctas