Concurrencia: Modelo Cliente-Servidor
Estructura sistemas concurrentes cliente-servidor para aislar el estado compartido y evitar sutiles errores de hilos.
Separa la Concurrencia de la Lógica
Un servidor que maneja peticiones HTTP es un aspecto de concurrencia. La lógica de negocio que procesa cada petición es un aspecto separado. Mezclarlos crea código imposible de probar. Extrae la lógica de negocio en funciones puras de un solo hilo — fáciles de probar unitariamente, fáciles de razonar.
Limita el Alcance de los Datos Compartidos
Cuanto más hilos comparten los mismos datos, mayor es el riesgo de condiciones de carrera. Mantén los datos compartidos al mínimo. Cuando compartir sea inevitable, usa la sección crítica más pequeña posible. Prefiere datos inmutables — los datos que no pueden cambiarse no pueden tener una condición de carrera.
Desafío de Código
Corrige el estado compartido desprotegido en el manejador del servidor.
💡Conclusión clave
La concurrencia y la lógica de negocio son aspectos separados. Mantenlos en clases separadas; prueba la lógica sin hilos.
🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.
Pista: Separa los aspectos de hilos del servidor de la lógica de negocio. Mantén el alcance de los datos compartidos lo más estrecho posible.
✗ Tu versión