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 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 tutoriále sa zoznámime s pokročilejšími technikami pre paralelné programovanie v jazyku Java. Predstavíme si semafor.
Č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