coroutines
import kotlinx.coroutines.*
fun main() = runBlocking {
launch { delay(100); println("ok") }
}
async/await
val job = async { 2 + 2 }
println(job.await())
flow
import kotlinx.coroutines.flow.*
val flow = flowOf(1, 2, 3)
result e runCatching
val res = runCatching { "ok" }
println(res.getOrNull())
esercizi
usa coroutine per eseguire task paralleli.
import kotlinx.coroutines.*
fun main() = runBlocking {
val job = async { 2 + 2 }
println(job.await())
}
panoramica
In questo capitolo su coroutines lavoriamo su coroutines, async/await, flow, result e runCatching per creare micro-pattern riutilizzabili.
lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.
badge: kotlin essentials
obiettivi
- capire e applicare coroutines in uno scenario reale
- capire e applicare async/await in uno scenario reale
- capire e applicare flow in uno scenario reale
- capire e applicare result e runcatching in uno scenario reale
scheda rapida
import kotlinx.coroutines.*
fun main() = runBlocking {
launch { delay(100); println("ok") }
}
adatta questo scheletro agli esempi della lezione.
tips
- usa val quando possibile
- sfrutta data class
- gestisci null in modo esplicito
- coroutines con scope chiari
- moduli gradle coerenti
- gestisci timeout e cancellazioni
tip: documenta ogni scelta architetturale.
mini progetto
esegui due task con coroutines.
- crea scope
- lancia async
- attendi risultati
output atteso: task completati.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale