8. diel - Prenos dát coroutines pomocou kanálov v Kotlin
V minulej lekcii, Využitie Flow a Sequence u coroutines v Kotlin , sme sa zoznámili s rozhraniami
Flow
a Sequence
a ukázali si, ako ich môžeme vo
svojich aplikáciách využiť.
V dnešnom tutoriále zameranom na
coroutines sa naučíme pracovať s kanálmi, ktoré slúžia
na komunikáciu medzi coroutines. Všetko si opäť ukážeme na praktických
príkladoch, kde si použitie Channel
vyskúšame.
Odovzdávanie dát
coroutines pomocou Channel
Kanály umožňujú jednoduché odovzdávanie objektov medzi
jednotlivými coroutines. Kanál - Channel
poskytuje metódy
send()
a receive()
, ktoré umožňujú poslať a
prijať dáta z kanála. Pri vytváraní inštancie Channel
v
Kotline je potrebné určiť typ dát, ktoré budú kanálom
prenášané.
Vytvorenie
Channel
s metódami send()
a
receive()
Poďme si všetko ukázať najprv na jednoduchom príklade komunikácie
coroutines prostredníctvom Channel
:
fun main(): Unit = runBlocking { val channel = Channel<Int>() // Coroutine na odosielanie objektov launch { repeat(3) { channel.send(it) delay(1000) } } // Coroutine na prijímanie objektov launch { while (isActive) { println(channel.receive()) } } }
Po spustení tohto programu dostaneme nasledujúci
...koniec náhľadu článku...
Pokračuj ďalej
Minul 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émiové sekcie.
Kúpiť tento kurz
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- 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 Kotline tutoriále si predstavíme kanály, ktoré slúžia na odovzdávanie dát medzi coroutines. Naučíme sa tiež nastaviť správny typ Channel pre danú komunikáciu.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.