Coroutine nedir?
- Kotlin kursu
- Orta seviye
- Ders 82/116
- 5 dk
Coroutine ve async programlama kavramını öğrenirsin.
Coroutine nedir?
Bir coroutine, çalışmayı askıya alıp (suspend) sonra devam ettirebilen hafif iş parçacığıdır. Normal bir thread binlerce coroutine'ü az kaynakla taşıyabilir; her coroutine birkaç yüz bayt yer kaplar.
Coroutine'ler suspend fonksiyonlarıyla çalışır: bekleyen bir işlemde thread'i bloklamadan başka işe geçilebilir. Bu, geri aranma (callback) cehennemini temiz kodla değiştirir. kotlinx.coroutines kütüphanesi runBlocking, launch, async gibi araçlar sağlar. Bu derste temel akışı göreceksin.
suspend ve yapısal eşzamanlılık
Bir suspend fonksiyonu çalışmasını bekletebilir ve devam ettirebilir. Bekleme sırasında thread bloklanmaz; başka coroutine'ler çalışabilir. delay en basit suspend fonksiyonudur: belirli bir süre bekler.
Yapısal eşzamanlılık (structured concurrency) her coroutine'in bir kapsamı (scope) olmasını sağlar. Kapsam bitmeden alt coroutine'ler tamamlanır. Bu, kaynak sızıntısını önler. runBlocking bir köprü kurar: blocking dünyadan suspending dünyaya geçer ve içerideki tüm coroutine'leri bekler.
Uygulama İlk coroutine'i çalıştır
import kotlinx.coroutines.* ekle. fun main() = runBlocking { println("Merhaba coroutine") } yaz. runBlocking bir coroutine scope açar ve main thread'ini bekletir.
Başlangıç kodu
import kotlinx.coroutines.*
// main'i runBlocking ile tanımla ve yazdırÖrnek çözüm
import kotlinx.coroutines.*
fun main() = runBlocking {
println("Merhaba coroutine")
}Beklenen çıktı
Merhaba coroutine
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Coroutine nedir?
- Hafif iş parçacığı Doğru cevap
- Ağır thread
- Sınıf türü
- Veri yapısı
Açıklama: Coroutine askıya alınabilen hafif iş parçacığıdır.
2 delay importunu tamamla
import kotlinx.coroutines.____
suspend fun greet() { delay(100) }
import kotlinx.coroutines.delay
suspend fun greet() { delay(100) }
Açıklama: delay bir suspend fonksiyonudur.
3 coroutine kavramlarını eşle
| Kavram | Anlamı |
|---|---|
coroutine |
Hafif iş |
suspend |
Bekletebilir |
delay |
Bekleme |
lightweight |
Az kaynak |