Sobes.tech
Junior — Middle

Modern sistemlerde görevlerin paralel yürütülmesini sağlayan yöntemler nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Günümüz sistemlerinde, görevlerin paralel yürütülmesi çeşitli şekillerde gerçekleştirilir:

  1. Çok İş Parçacığı (Threads) — aynı süreç içinde birden fazla iş parçacığı oluşturma ve yönetme. Android'de bu, Thread sınıfı veya ExecutorService olabilir.

  2. Asenkron Programlama — ana akışı engellemeden görevleri yürütmek için callback'ler, Future, CompletableFuture, Kotlin Coroutines kullanımı.

  3. İş Parçacığı Havuzları (Thread Pools) — kaynakların verimli dağılımı için sınırlı sayıda iş parçacığı yönetimi.

  4. RxJava / Reaktif Programlama — asenkron veri akışlarının işlenmesi için reaktif yaklaşım.

  5. WorkManager / JobScheduler — cihaz kısıtlamalarını dikkate alarak paralel olarak yürütülebilecek arka plan görevlerini planlamak için sistem API'leri.

Kotlin Coroutines kullanarak iki görevi paralel yürütmek için örnek:

import kotlinx.coroutines.*

fun main() = runBlocking {
    val job1 = async { heavyTask() }
    val job2 = async { simpleTask() }

    println("Sonuçlar: ${job1.await()}, ${job2.await()}")
}

suspend fun heavyTask(): String {
    delay(1000) // ağır işleme simülasyonu
    return "Ağır görev tamamlandı"
}

suspend fun simpleTask(): String {
    delay(500) // basit işleme simülasyonu
    return "Basit görev tamamlandı"
}

Bu yaklaşım, kaynakların etkin kullanımını sağlar ve kullanıcı arayüzünün bloklanmasını önler.