Sobes.tech
Junior — Middle

Ποιους τρόπους εκτέλεσης εργασιών στις Coroutines γνωρίζεις;

sobes.tech AI

Απάντηση από AI

Στα Kotlin Coroutines, οι εργασίες μπορούν να εκτελεστούν με διάφορους τρόπους:

  • launch — ξεκινά μια νέα coroutine που εκτελείται παράλληλα και δεν επιστρέφει αποτέλεσμα. Χρησιμοποιείται για εργασίες φόντου όπου το αποτέλεσμα δεν είναι απαραίτητο.

  • async — ξεκινά μια coroutine που επιστρέφει ένα αποτέλεσμα με τη μορφή Deferred, επιτρέποντας την απόκτησή του μέσω await(). Κατάλληλο για παράλληλους υπολογισμούς με αποτέλεσμα.

  • runBlocking — μπλοκάρει το τρέχον νήμα μέχρι να ολοκληρωθεί η coroutine, και συχνά χρησιμοποιείται σε κύριες λειτουργίες ή δοκιμές.

  • withContext — αλλάζει το πλαίσιο εκτέλεσης (π.χ., σε Dispatchers.IO για λειτουργίες εισόδου/εξόδου) και εκτελεί ένα μπλοκ κώδικα, επιστρέφοντας το αποτέλεσμα.

Παράδειγμα:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Εργασία σε launch")
    }

    val result = async {
        delay(500)
        42
    }

    println("Αποτέλεσμα του async: ${result.await()}")
}