Lekce 12 - Hierarchie coroutines a typ SupervisorJob v Kotlin
V minulé lekci, Rozhraní CompletableJob a zjištění stavu coroutines v Kotlin, jsem si ukázali, jak pro práci s coroutines
využít rozhraní CompletableJob
a další atributy instance typu
Job
.
V dnešním tutoriálu si ukážeme, jak vytvořit
rodičovskou coroutine (parent coroutine) a jak jí
přiřadit potomky (child coroutines). Zaměříme se
také na propagování výjimek v této hierarchii objektů
typu Job
a představíme si i nový typ
SupervisorJob
.
Hierarchie coroutines
Pomocí rozhraní Job
můžeme tvořit hierarchickou
strukturu instancí typu Job
. Každá taková instance
může mít své potomky. Díky tomu můžeme například
efektivněji zpracovat informace z nějakého zdroje na internetu. V takovém
případě bychom vytvořili jeden completableJob
pro
odeslání požadavku na server a druhý
completableJob
pro zpracování dat, která nám
zašle server. Poté bychom vytvořili třetí completableJob
,
který by reprezentoval provedení obou předešlých
akcí.
Tvorba podřízených coroutines
Ukažme si tedy, jak takovou hierarchii coroutines vytvořit:
fun main() { val parentJob = Job() val requestJob = Job(parentJob) val handleJob = Job(parentJob) parentJob.complete() requestJob.complete() handleJob.complete() println(parentJob.isCompleted) }
V uvedeném příkladu jsme
...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:
V Kotlin tutoriálu vytvoříme hierarchii coroutines a ukážeme si, jak se propagují výjimky mezi potomky a rodiči včetně využití typu SupervisorJob.
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íť.