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

Vedomosti v hodnote stoviek tisíc získaš za pár eur

Došiel 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émiovej sekcie.

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íš s Prevádzkovými podmienkami.

Čo od nás v ďalších lekciách dostaneš?
  • Prístup k jednotlivým lekciám podľa spôsobu obstarania.
  • 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.
Článok pre vás napísal Patrik Valkovič
Avatar
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity