La API funciona de maravilla… con un usuario. El programa del paso 02 era secuencial: una acción a la vez. Ahora cada petición vive en su hilo, y todos los hilos tocan el mismo bean de repositorio. El paso aplica los conceptos del tema: pool de hilos de Tomcat y estado compartido. Aquí no se implementa nada: el entregable es un diagnóstico.
| Situación | Dónde vive | Qué ocurre |
|---|---|---|
| variable local de un método | pila del hilo | no se comparte: segura sin esfuerzo |
| campo/bean del repositorio | único (singleton) | compartido: todos los hilos leen/escriben lo mismo |
ThreadLocal | propio del hilo | hay que limpiarlo, porque Tomcat reutiliza el hilo |
++ (leer, sumar, guardar) y por qué solapadas producen resultados imposibles (ids repetidos, plantilla inconsistente).static que quedara de la historia consola.
El paso 12 realmente necesita un valor por hilo (la identidad autenticada de cada petición). Ahí es donde ThreadLocal —y su limpieza— entra en escena con el modelo correcto.