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