Ποιους τρόπους εκτέλεσης εργασιών στις 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()}")
}