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.