Concurrencia
Escribe codigo C++ multihilo correcto y eficiente — hilos, sincronizacion, atomicos y algoritmos paralelos.
Hilos y Sincronizacion
std::thread, std::jthread y Gestion de Hilos
Aprende a crear y gestionar hilos con std::thread y std::jthread de C++20. Comprende join vs detach, cancelacion cooperativa con stop tokens, almacenamiento local de hilo y manejo de excepciones a traves de limites de hilo.
Mutexes, Locks y Variables de Condicion
Protege datos compartidos con mutexes, lock guards y unique locks. Usa variables de condicion para senalizacion entre hilos y evita trampas comunes de deadlock.
Condition Variables & Producer-Consumer
Use condition variables to efficiently coordinate threads. Build a thread-safe producer-consumer queue, handle spurious wakeups, and avoid the lost wakeup problem.
Patrones Avanzados de Concurrencia
Futures, Promises y Tareas Asincronas
Usa std::future, std::promise y std::async para comunicacion de valores entre hilos. Comprende las politicas de lanzamiento, shared futures y la propagacion de excepciones a traves de limites de hilo.
Operaciones Atomicas y Ordenamiento de Memoria
Comprende la programacion libre de locks con std::atomic. Domina los ordenamientos de memoria (relaxed, acquire, release, seq_cst), implementa un spinlock con atomic_flag y aprende el patron compare-and-swap (CAS).
Algoritmos Paralelos y Politicas de Ejecucion
Aprovecha la STL paralela de C++17 para paralelizar ordenamiento, transformacion y reduccion con politicas de ejecucion. Comprende cuando el paralelismo ayuda, la ley de Amdahl y el diseno practico de pools de hilos.