7. diel - RAII a chytré zamykanie v C ++

V predchádzajúcej lekcii, Synchronizovaná front a vzor producent - konzument v C ++ , sme si vyskúšali std::mutex prakticky. Naimplementovali sme synchronizovanú front BlockingQueue, ktorá využíva mutex pre synchronizáciu prístupu ku vnútornej fronte. Analyzovali sme možné správanie triedy pre viac vlákien a opäť si pripomenuli, že je potrebné premýšľať paralelne. Potom sme túto triedu použili v návrhovom vzore producent - konzument. Nakoniec sme prišli na niekoľko problémov, ktoré môžu spôsobiť zlé správanie aplikácie alebo jej pád. V dnešnej lekcii sa zameriame na jednu skupinu problémov a tým sú neodemknuté alebo zabudnuté mutexy.

Zabudnutý mutex

Už sme si vysvetlili, že jeden mutex definuje jeden synchronizovaný blok. Ďalej vieme, že pri pokuse o zamknutí už zamknutého mutexu sa vlákno zablokuje a nie je odblokované skôr, než je mutex odomknutý.


 

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

Pred kúpou tohto článku je potrebné kúpiť predchádzajúci diel

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 lekcii sa pozrieme na idiom RAII a popíšeme si zámky std :: lock_guard a std :: unique_lock zo štandardnej knižnice.
Č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