Lekce 4 - Multithreading v Javě - Mezivláknová komunikace
Dnes si ukážeme, že možnosti těchto monitorů rozhodně u synchronizace nekončí.
Mezivláknová komunikace
Java nám nabízí tři metody související s mezivláknovou komunikací.
Jsou to metody wait()
, notify()
a
notifyAll()
. S nimi jste se již jistojistě setkali, protože jsou
definovány třídou Object
, a tudíž je každý objekt obsahuje.
Na první pohled to může vypadat trochu zmateně – proč jsou tyto metody
součástí každého objektu, proč je jednoduše nedefinuje třída
Thread
? Jak lze takové metody využít? Možná jste si již
všimli, že používání monitorů rozdělí naše vlákna do skupin podle
monitorů, které používají. Vlákna v těchto skupinách se poté přes
sdílený monitor mohou navzájem ovlivňovat. A protože víme, že monitorem
může být jakýkoli objekt, bylo potřeba, aby každý objekt tyto
ovlivňovací metody obsahoval.
Abychom mohli tyto metody na monitoru úspěšně volat, je potřeba, abychom v danou chvíli tento monitor vlastnili (námi myslím naše vlákno). A kdy máme jistotu, že vlastníme monitor? No, v
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
Podrobně si vysvětlíme mezivláknovou komunikaci s použitím metod wait, notify a notifyAll. Na příkladech si ukážeme i situace deadlock a spurious wakeup.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.