Sobes.tech
Junior — Middle

Kokiais metodais realizuojamas užduočių lygiagretus vykdymas šiuolaikiniuose sistemose?

sobes.tech AI

Atsakymas iš AI

Šiuolaikiniuose sistemuose užduočių vykdymas lygiagrečiai realizuojamas keliais būdais:

  1. Daugialypis (Threads) — kelių srautų kūrimas ir valdymas viename procese. Android'e tai gali būti Thread klasė arba ExecutorService.

  2. Asinchroninis programavimas — naudojant callback'us, Future, CompletableFuture, Kotlin Coroutines, kad užduotys būtų vykdomos nesustabdant pagrindinio srauto.

  3. Gijų baseinai (Thread Pools) — riboto skaičiaus gijų valdymas efektyviam išteklių paskirstymui.

  4. RxJava / Reaktyvus programavimas — reaktyvus požiūris į asinchroninių duomenų srautų apdorojimą.

  5. WorkManager / JobScheduler — sisteminiai API, planuojantys fonines užduotis, kurios gali būti vykdomos lygiagrečiai ir atsižvelgiant į įrenginio apribojimus.

Pavyzdys naudojant Kotlin Coroutines, kad būtų vykdomos dvi užduotys lygiagrečiai:

import kotlinx.coroutines.*

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

    println("Rezultatai: ${job1.await()}, ${job2.await()}")
}

suspend fun heavyTask(): String {
    delay(1000) // sunkaus darbo imitacija
    return "Sunkus darbas baigtas"
}

suspend fun simpleTask(): String {
    delay(500) // paprasto darbo imitacija
    return "Paprastas darbas baigtas"
}

Šis požiūris leidžia efektyviai naudoti išteklius ir išvengti UI blokavimo.