9. diel - Atomické premenné v C ++ prakticky
V predchádzajúcej lekcii, Atomicita v C ++ , sme si položili teoretický základ
atomických premenných. Povedali sme si o ich výhodách a to najmä z
hľadiska tzv. Lock-free programovanie. Máme aj nejakú predstavu, ako
fungujú atomické operácie v procesore. Nakoniec sme si povedali o triede
std::atomic
a aliasov ako std::atomic_int
pre
zaistenie atomických operácií. V dnešnej lekcii si prakticky vyskúšame
atomické premenné v kóde.
Inkrementování hodnoty niekoľkých vláknami
Vrátime sa k príkladu z piatej lekcie, kde niekoľko vlákien inkrementovalo tú istú premennú. V prvej variante programe nebol prístup nijako synchronizovaný a výsledok bol zlý - vlákna medzi sebou súťažila. V druhej variante sme použili mutexy na synchronizáciu prístupu a výsledok bol konečne správny.
Kód s mutex
Pre pripomenutie pridávam zdrojový kód z piatej lekcie:
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Obmedzená ponuka: Nauč sa všetko a ušetri
Pred kúpou tohto článku je potrebné kúpiť predchádzajúci diel
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
Po predchádzajúcej teoretickej C ++ lekciu si nadobudnuté vedomosti vyskúšame: pomocou lock-free programovanie nahradíme mutex a vylepšíme vzor producent - konzument.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.