Ir al contenido
Módulo 7

Concurrencia

Escribe codigo C++ multihilo correcto y eficiente — hilos, sincronizacion, atomicos y algoritmos paralelos.

Hilos y Sincronizacion

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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).

  3. 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.