5. diel - Synchronizácie vlákien v C ++ - Volatile a mutex

Minule, v lekcii Plánovanie a stavy vlákien v C ++ , sme si relatívne podrobne opísali, ako operačný systém nakladá s vláknami aplikácie a akým spôsobom ich plánuje na procesore. Tiež sme si ukázali, že pomocou metódy sleep() môžeme vlákno na určitú dobu uspať a metódou yield() sa vzdávame aktuálneho timeslice.

Dnes sa konečne pozrieme na synchronizáciu vlákien v C ++. Povieme si, prečo ju potrebujeme a akým spôsobom ju docieliť.

Synchronizácia

Čo sa stane, keď viac vlákien pristupuje k jednej premennej, sme videli v predchádzajúcej lekcii. Pre osvieženie si príklad ukážeme ešte raz. Vlákna inkrementuje globálnej premennej a pritom by sa mala (aspoň teoreticky) striedať. Prakticky tomu ale tak nie je a tak bude výsledná hodnota iná, než by sme očakávali:


 

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

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:

V C ++ tutoriálu si vysvetlíme princípy synchronizácie a prečo ju potrebujeme. Povieme si, na čo slúži kľúčové slovo volatile a popíšeme si mutex.
Č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