Lekce 5 - Synchronizace vláken v C++ - Volatile a Mutex
V minulé lekci, Plánování a stavy vláken v C++, jsme si relativně podrobně popsali, jak
operační systém nakládá s vlákny aplikace a jakým způsobem je plánuje
na procesoru. Také jsme si ukázali, že pomocí metody sleep()
můžeme vlákno na určitou dobu uspat a metodou yield()
se
vzdáváme aktuálního timeslice.
Dnes se konečně podíváme na synchronizaci vláken v C++. Řekneme si, proč ji potřebujeme a jakým způsobem jí docílit.
Synchronizace
Co se stane, když více vláken přistupuje k jedné proměnné, jsme viděli v předchozí lekci. Pro osvěžení si příklad ukážeme ještě jednou. Vlákna inkrementují globální proměnnou a přitom by se měla (alespoň teoreticky) střídat. Prakticky tomu ale tak není a tak bude výsledná hodnota jiná, než bychom očekávali:
...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
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:
V C++ tutoriálu si vysvětlíme principy synchronizace a proč ji potřebujeme. Řekneme si, k čemu slouží klíčové slovo volatile a popíšeme si mutex.
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íť.