IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Lekce 4 - Multithreading v Javě - Mezivláknová komunikace

V předchozím kvízu, Kvíz - Tvorba vícevláknových aplikací a synchronizace v Javě, jsme si ověřili nabyté zkušenosti z předchozích lekcí.

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

Znalosti v hodnotě stovek tisíc získáš za pár korun

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.

Omezená nabídka: Nauč se vše a ušetři

Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh a certifikátem za exkluzivní cenu 150 Kč
Aktuální stav konta 0 Kč
Koupí tohoto výhodného balíčku získáš přístup ke všem 22 článkům (13 lekcí, 5 testů, 4 praktické cvičení) tohoto kurzu s kontrolou a certifikací a ještě navíc ušetříš 601 Kč. Nabídka je časově omezená a platí pro všechny lekce v kurzu. Nakup teď a získej limitovanou 80% slevu.

Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • 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íť.

Článek pro vás napsal Matěj Kripner
Avatar
Student, programátor v CZ.NIC.
Aktivity