CodeBlanks Logo Icon CodeBlanks

Coroutine nedir?

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

Main.kt
import kotlinx.coroutines.*

// main'i runBlocking ile tanımla ve yazdır

Örnek çözüm

Main.kt
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

Soru
import kotlinx.coroutines.____

suspend fun greet() { delay(100) }
Cevap
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

Orta seviye bölümündeki tüm dersler