Concurență
Scrieți corect, eficient multithreaded C++ — fire, sincronizare, atomic și algoritmi paraleli.
Fire și sincronizare
std::thread, std::jthread & Thread Management
Învățați să creați și să gestionați fire cu std::thread și std::jthread de la C++20. Înțelegeți alăturarea vs detașarea, anularea cooperativă cu jetoane de oprire, stocarea locală a firelor și gestionarea excepțiilor peste granițele firelor.
Mutexuri, încuietori și secțiuni critice
Primitive de sincronizare master: mutex, lock_guard, unique_lock, scoped_lock, shared_mutex. Aflați cum să protejați datele partajate, să preveniți blocajele și să înțelegeți diferența dintre cursele de date și condițiile de cursă.
Variabile de condiție și producător-consumator
Use condition variables to efficiently coordinate threads. Build a thread-safe producer-consumer queue, handle spurious wakeups, and avoid the lost wakeup problem.
Async, Atomics & Paralelism
std::async, std::future și std::promise
Utilizați abstracții de concurență de nivel superior: lansați sarcini asincrone cu std::async, preluați rezultatele cu std::future și setați manual valori sau excepții cu std::promise.
Operații atomice și ordonarea memoriei
Înțelegeți programarea fără blocare cu std::atomic. Comandări de memorie master (relaxat, achiziționare, eliberare, seq_cst), implementați un spinlock cu atomic_flag și învățați modelul de comparare și schimbare (CAS).
Algoritmi paraleli și politici de execuție
Utilizați STL paralel C++17 pentru a paraleliza sortarea, transformarea și reducerea cu politicile de execuție. Înțelegeți când paralelismul ajută, legea lui Amdahl și designul practic al piscinei cu fire.