¿Qué herramientas de concurrencia te da Java y cuándo usas cada una?
Respuesta
synchronized / ReentrantLock: protegen el estado mutable compartido con exclusión mutua.volatile: visibilidad de un flag simple.Atomic* / LongAdder: contadores sin locks.ConcurrentHashMap, CopyOnWriteArrayList, BlockingQueue: colecciones thread-safe para datos compartidos y productor/consumidor.ExecutorService: thread pools para ejecutar tareas; CompletableFuture: componer pasos async.- Virtual threads (Java 21): estilo bloqueante simple para concurrencia masiva de I/O.
- Mejor regla: evita el estado mutable compartido; prefiere objetos inmutables y paso de mensajes.
Practica esta pregunta en Repaso