Lekce 9 - Atomické proměnné v C++ prakticky
V předchozí lekci, Atomicita v C++, jsme si položili teoretický základ
atomických proměnných. Řekli jsme si o jejich výhodách a to zejména z
hlediska tzv. lock-free programování. Máme i nějakou představu,
jak fungují atomické operace v procesoru. Nakonec jsme si řekli o třídě
std::atomic
a aliasech jako std::atomic_int
pro
zajištění atomických operací.
V dnešní lekci si prakticky vyzkoušíme atomické proměnné v kódu.
Inkrementování hodnoty několika vlákny
Vrátíme se k příkladu z páté lekce, kde několik vláken inkrementovalo tu samou proměnnou. V první variantě programu nebyl přístup nijak synchronizován a výsledek byl špatný - vlákna mezi sebou soutěžila. Ve druhé variantě jsme použili mutexy k synchronizaci přístupu a výsledek byl konečně správný.
Kód s mutexem
Pro připomenutí přidávám zdrojový kód z páté lekce:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Před koupí tohoto článku je třeba koupit předchozí díl
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
Po předchozí teoretické C++ lekci si nabyté znalosti vyzkoušíme: pomocí lock-free programování nahradíme mutex a vylepšíme vzor producent - konzument.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.