launch
- Kotlin kursu
- Orta seviye
- Ders 83/116
- 5 dk
GlobalScope.launch ile coroutine başlatmayı öğrenirsin.
launch
launch bir coroutine scope içinde yeni bir coroutine başlatır. Sonuç döndürmeyen, ateşle ve unut (fire-and-forget) tarzında çalışır. Örnek: runBlocking { launch { println("Çalıştı") } }.
launch bir Job döndürür; join() ile bitmesini bekleyebilirsin. Yapısal eşzamanlılık sayesinde runBlocking içerideki tüm launch'lar bitmeden dönmez. Bu, açık join çağrısı yapmadan bile coroutine'lerin tamamlanmasını sağlar.
launch ve join
Bir launch bloğu kendi coroutine'inde sırayla çalışır. İçindeki println satırları yazıldığı sırada ekrana çıkar. Örnek: launch { println("Birinci"); println("İkinci") } çıktısı deterministiktir.
Birden çok launch aynı anda başlayabilir; aralarındaki sıra belirsizdir. Deterministik çıktı için tek bir launch içinde sıralı println kullanılır. join() bir coroutine'in bitmesini bekler; bu, sıralama gerektiğinde faydalıdır. delay ile bekleme de sırayı etkileyebilir.
Uygulama launch ile iki satır yaz
import kotlinx.coroutines.* ekle. fun main() = runBlocking yaz; içinde launch { println("Birinci"); println("İkinci") } çağır. Tek bir launch içinde sıralı yazım deterministik çıktı verir.
Başlangıç kodu
import kotlinx.coroutines.*
// runBlocking içinde launch ile iki satır yazdırÖrnek çözüm
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
println("Birinci")
println("İkinci")
}
}Beklenen çıktı
Birinci İkinci
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 launch çağrısını tamamla
runBlocking {
____ { println("Başladı") }
}
runBlocking {
launch { println("Başladı") }
}
Açıklama: launch yeni bir coroutine başlatır.
2 launch kavramlarını eşle
| Kavram | Anlamı |
|---|---|
launch |
Başlat |
Job |
Dönüş |
join() |
Bekle |
fire-and-forget |
Sonuçsuz |
3 launch ne döndürür?
- Bir değer
- Job Doğru cevap
- Unit
- Deferred
Açıklama: launch bir Job döndürür; join() ile beklenebilir.