4. diel - Multithreading v Jave - Mezivláknová komunikácia

V minulej lekcii, Multithreading v Jave - Synchronizácia v praxi , sme si prvýkrát v praxi vyskúšali synchronizáciu vlákien. Tá je realizovaná pomocou monitorov. Dnes si ukážeme, že možnosti týchto monitorov rozhodne u synchronizácie nekončí.

Mezivláknová komunikácia

Java nám ponúka tri metódy súvisiace s mezivláknovou komunikáciou. Sú to metódy wait(), notify() a notifyAll(). S nimi ste sa už istoiste stretli, pretože sú definované triedou Object, a teda je každý objekt obsahuje. Na prvý pohľad to môže vyzerať trochu zmätene - prečo sú tieto metódy súčasťou každého objektu, prečo je jednoducho nedefinuje trieda Thread ? Ako možno také metódy využiť? Možno ste si už všimli, že používanie monitorov rozdelí naše vlákna do skupín podľa monitorov, ktoré používajú. Vlákna v týchto skupinách sa potom cez zdieľaný monitor môžu navzájom ovplyvňovať. A pretože vieme, že monitorom môže byť akýkoľvek objekt, bolo potrebné, aby každý objekt tieto ovlivňovací metódy obsahoval.

Aby sme mohli tieto metódy na monitore úspešne volať, je potrebné, aby sme v danej chvíli tento monitor vlastnili (nami myslím naše vlákno). A kedy máme istotu, že vlastníme monitor? No, v


 

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

Podrobne si vysvetlíme mezivláknovou komunikáciu s použitím metód wait, notify a notifyAll. Na príkladoch si ukážeme aj situácie deadlock a spurious Wakeup.
Článok pre vás napísal Matěj Kripner
Avatar
Student, programátor v CZ.NIC.
Aktivity