IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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.

Obmedzená ponuka: Nauč sa všetko a ušetri

Kúpiť všetky aktuálne dostupné lekcie s funkciou odovzdávanie úloh a certifikátom za exkluzívnu cenu 150 kreditov
Aktuálny stav konta 0 kreditov
Kúpou tohoto výhodného balíčku získaš prístup ku všetkým 22 článkom (13 lekcií, 5 testov, 4 praktické cvičenia) s kontrolou a certifikáciou a ešte naviac ušetríš 601 Kč. Ponuka je časovo obmedzená a platí pro všetky lekcie v kurze. Nakúp teraz a získaj limitovanou 80% zľavu.

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