Nové výhodné předplatné namísto kreditů je tu! Více informací. Upravili jsme také naše provozní podmínky.
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

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

Znalosti v hodnotě stovek tisíc získáš za pár korun

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.

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íš s Provozními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • Přístup k jednotlivým lekcím dle způsobu pořízení.
  • 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.
Článek pro vás napsal Patrik Valkovič
Avatar
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity