Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

17. diel - Semafory v C ++

V minulej lekcii, Bariéry a závory v C ++ , sme si predstavili nové synchronizačné entity - bariéry a závory, pomocou ktorých môžeme vlákna zosynchronizovať na konkrétnom mieste.

V dnešnej lekcii sa pozrieme na semafory, čo sú ďalšie entity určené na signalizáciu medzi vláknami. Ukážeme si, ako pomocou neho urobiť mutex, synchronizovanú frontu a ako ho implementovať v C ++.

Semafor

Semafor je štruktúra, ktorá svojím spôsobom kombinuje mutex, počítadlo a podmienenú premennú do jedného celku. Pri vytváraní sa semafór inicializuje počiatočnou hodnotou počítadla. Vlákno má možnosť počítadlo zvýšiť alebo znížiť. Ak sa vlákno pokúsi znížiť počítadlo, ktoré je už na nule, bude vlákno uspanie do doby, než bude hodnota pozitívne. To je vlastne celá veda - nič viac v tom nie je.

Použitia semaforu

Zaujímavá sú rôzne použitia semaforu.

Semafor ako mutex

Pozrime sa na prvý príklad použitia - semafor môžeme použiť ako mutex. To urobíme tak, že semafor vytvoríme s


 

...koniec náhľadu článku...
Pokračuj ďalej

Vedomosti v hodnote stoviek tisíc získaš za pár korún

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.

Kúpiť tento kurz

Kúpiť všetky aktuálne dostupné lekcie s funkciou odovzdávanie úloh iba za 525 kreditov
Aktuálny stav konta 0 kreditov
Kúpou tohoto balíčku získaš prístup ku všetkým 23 článkom (23 lekcií) tohoto kurzu.

Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.

Čo od nás v ďalších lekciách dostaneš?
  • 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 sa pozrieme na semafory - štruktúry slúžiace na signalizáciu medzi vláknami a alternatívu k mutexu.

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

Č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