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

6. diel - Multithreading v Jave - Semafor

V predchádzajúcej lekcii, Multithreading v Jave - Užitočné komponenty pre paralelizmus , sme si zhrnuli ďalšie možné techniky pre paralelné programovanie. Dnes si ukážeme prvú z pokročilých tried pre paralelné programovanie - semafor.

Kritická sekcia

Než sa pustíme do popisu jednotlivých synchronizačných primitív, vysvetlíme si podrobne, čo to presne kritická sekcia je. V predchádzajúcich lekciách sme sa o nej letmo zmienili, ale nevysvetlili si ju do podrobna. Poďme to napraviť.

Kritická sekcia je miesto, kde dochádza k časovému súbehu, teda je vykonávaný prístup k spoločným dátam.

kritická sekcia

Naším cieľom je zabezpečiť, aby sa v kritickej sekcii vyskytol iba jeden proces / vlákno.

Každá kritická sekcia sa vzťahuje ku konkrétnym dátam, ku ktorým sa v nej pristupuje (x, y, z, s1, ...). Snažíme sa nezamyká všetko, ale len konkrétne kritické miesta zdieľaných dát.

Jedno synchronizačný primitívom sme si už predstavili: monitor. Podpora monitora musí byť implementovaná priamo v programovacom jazyku. V Jave je monitor prítomný pomocou kľúčového slova synchronized. Teraz prejdeme k ďalším primitívom.

Semafor v C

Aby sme pochopili princípy semafore, ukážeme si krátku abstraktné implementáciu v jazyku C. Dijkstra (1962/1963) navrhol primitívom, ktoré zjednodušuje


 

...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 a certifikátom iba za 750 kreditov
Aktuálny stav konta 0 kreditov
Kúpou tohoto balíčku získaš prístup ku všetkým 22 článkom (13 lekcií, 5 testov, 4 praktické cvičenia) 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 tutoriále sa zoznámime s pokročilejšími technikami pre paralelné programovanie v jazyku Java. Predstavíme si semafor.

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 Petr Štechmüller
Avatar
Autor se věnuje primárně programování v Javě, ale nebojí se ani webových technologií.
Aktivity