Sobes.tech
Junior — Middle

Programlamada'da korutinlerin temel rolü nedir ve bunlar thread'lerden nasıl ayrılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Korutinler, hafif yürütme akışlarıdır ve daha basit ve anlaşılır bir şekilde asenkron ve eşzamanlı kod yazmaya olanak tanır. Android (ve Kotlin) üzerinde, korutinler ana akışı (UI akışı) engellemeden arka planda görevleri gerçekleştirmek için kullanılır.

Korutinler ile threadler arasındaki temel farklar:

  • Hafiflik: korutinler, sistem threadlerine göre çok daha az kaynak kullanır.
  • Yönetim: korutinler, işletim sisteminden bağımsız olarak uygulama içindeki bir planlayıcı tarafından yönetilir.
  • Duraklatma ve devam ettirme: korutinler belirli noktalarda (suspend) duraklatılabilir ve devam ettirilebilir, bu da asenkron programlamayı kolaylaştırır.

Kotlin için Android'de korutin kullanımı örneği:

import kotlinx.coroutines.*

fun loadData() {
    GlobalScope.launch(Dispatchers.Main) { // ana akışta korutina başlat
        val data = withContext(Dispatchers.IO) { // arka plana geç
            fetchDataFromNetwork() // uzun süren istek
        }
        updateUI(data) // UI'yı güncelle
    }
}

Bu şekilde, korutinler, karmaşık callback'ler ve bloklamalar olmadan, sıralı gibi görünen asenkron kod yazmayı sağlar.