Lekce 7 - RAII a chytré zamykání v C++
V předchozí lekci, Synchronizovaná fronta a vzor producent - konzument v C++, jsme si vyzkoušeli std::mutex
prakticky. Naimplementovali jsme synchronizovanou frontu
BlockingQueue
, která využívá mutexů pro synchronizaci
přístupu ke vnitřní frontě. Analyzovali jsme možné chování třídy pro
více vláken a opět si připomněli, že je nutné přemýšlet paralelně.
Poté jsme tuto třídu použili v návrhovém vzoru producent -
konzument. Nakonec jsme přišli na několik problémů, které mohou
způsobit špatné chování aplikace nebo její pád.
V dnešní lekci se zaměříme na jednu skupinu problémů a tím jsou neodemknuté nebo zapomenuté mutexy.
Zapomenutý mutex
Již jsme si vysvětlili, že jeden mutex definuje jeden synchronizovaný blok. Dále víme, že při pokusu o zamknutí již zamknutého mutexu se vlákno zablokuje a není odblokováno dříve, než je mutex odemknut.
...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
Před koupí tohoto článku je třeba koupit předchozí díl
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 lekci se podíváme na idiom RAII a popíšeme si zámky std::lock_guard a std::unique_lock ze standardní knihovny.
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íť.