Sobes.tech
Junior — Middle

Asenkron görevlerin uygulanmasında koroutinlerin ve iş parçacıklarının kullanımı nasıl farklılık gösterir?

sobes.tech yapay zeka

AI'dan gelen yanıt

İş Parçacıkları (Threads), paralel olarak birkaç görevi yerine getirmeyi sağlayan sistem nesneleridir, her biri kendi çağrı yığını ve yürütme bağlamına sahiptir. İş parçacıklarının oluşturulması ve bunlar arasında geçiş oldukça kaynak yoğundur ve çok sayıda iş parçacığı olması durumunda ek yük oluşabilir.

Korotinler (Coroutines), yeni iş parçacıkları oluşturmadan fonksiyonların yürütmesini duraklatıp yeniden başlatmaya olanak tanıyan hafif bileşenlerdir. Bir veya birkaç iş parçacığı içinde çalışırlar, ancak asenkron kodu ardışık şekilde yazmayı ve görevleri bloklamadan verimli yönetmeyi sağlarlar.

Ana farklar:

  • İş parçacıkları ağırdır, korotinler hafiftir.
  • İş parçacıkları işletim sistemi seviyesinde bağlam değişikliği gerektirir, korotinler dil seviyesinde.
  • Korotinler, asenkron kodu daha basit ve okunabilir hale getirir.

Android için Kotlin'de bir korotin örneği:

GlobalScope.launch(Dispatchers.IO) {
    val data = fetchDataFromNetwork() // asenkron işlem
    withContext(Dispatchers.Main) {
        updateUI(data)
    }
}