12. diel - Vlákna - Synchronizačná entita Semafor v C# .NET

V minulej lekcii, Vlákna - Štruktúra SpinWait v C# .NET - Dokončenie , sme pokračovali v štruktúre SpinWait, na ktorej sme si vysvetlili Lock-free dátové štruktúry.

V dnešnom C# tutoriále si predstavíme synchronizačnú entitu Semaphore, pomocou ktorej budeme synchronizovať prístup vlákien do kritickej sekcie so zdieľanými dátami.

Naprogramujeme si funkčnú aplikáciu simulujúcu pohyb vlákien v kritickej sekcii:

Konzolová aplikácia
Vlákno 3 před vstupem do kritické sekce.
Vlákno 5 před vstupem do kritické sekce.
Vlákno 4 před vstupem do kritické sekce.
Vlákno 2 před vstupem do kritické sekce.
Vlákno 1 před vstupem do kritické sekce.
Vlákno 3 vstoupilo do kritické sekce a pracuje.
Vlákno 3 opouští kritickou sekci.
Vlákno 5 vstoupilo do kritické sekce a pracuje.
Vlákno 5 opouští kritickou sekci.
Vlákno 4 vstoupilo do kritické sekce a pracuje.
Vlákno 4 opouští kritickou sekci.
Vlákno 2 vstoupilo do kritické sekce a pracuje.
Vlákno 2 opouští kritickou sekci.
Vlákno 1 vstoupilo do kritické sekce a pracuje.
Vlákno 1 opouští kritickou sekci.

Motivácia synchronizovaného prístupu

V paralelnom programovaní je kľúčové zabezpečiť, aby viac vlákien mohlo spolupracovať bez konfliktov s efektívnym využívaním zdieľaných prostriedkov. Dva z nástrojov, ktoré pomáhajú dosiahnuť tieto ciele, sú synchronizačné entity Semaphore a Barrier. Tieto entity umožňujú riadiť prístup vlákien k zdieľaným prostriedkom, a tak koordinovať paralelné spracovanie. V tomto článku sa pozrieme na synchronizačnú entitu Semaphore.


 

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

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 C# tutoriále si predstavíme synchronizačnú entitu Semaphore, pomocou ktorej budeme synchronizovať prístup vlákien do kritickej sekcie so zdieľanými dátami.
Článok pre vás napísal Filip Studený
Avatar
.
Aktivity