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
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.
ročné PREDPLATNÉ
44 €
mesačne, platené ročne (528 €)14 000+ lekcií, cvičení a testov
6 000+ ti zostane navždy
Neobmedzený prístup ku všetkým aktuálnym
aj pripravovaným kurzom.
Kúpiť iba tento kurz
Získaj okamžitý prístup ku kurzu bez
časového obmedzenia.
14 €
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš s Prevádzkovými podmienkami.
- 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.