Junior — Middle
Πώς πραγματοποιείται η αλληλεπίδραση μεταξύ των κορουτινών στο πλαίσιο ενός προγράμματος;
sobes.tech AI
Απάντηση από AI
Στο Android (και Kotlin), η αλληλεπίδραση μεταξύ των κορουτινών πραγματοποιείται συνήθως μέσω μηχανισμών συγχρονισμού και ανταλλαγής δεδομένων, όπως:
- Channels (Κανάλια) — επιτρέπουν την αποστολή και λήψη δεδομένων μεταξύ κορουτινών ασύγχρονα.
- SharedFlow και StateFlow — αντιδραστικά ρεύματα για τη διάδοση γεγονότων και καταστάσεων.
- Κοινό πλαίσιο ή αντικείμενα με συγχρονισμό — π.χ.,
Mutexγια την προστασία κοινών πόρων.
Παράδειγμα χρήσης ενός καναλιού για ανταλλαγή μηνυμάτων μεταξύ κορουτινών:
val κανάλι = Channel<String>()
// Πομπός
launch {
κανάλι.send("Γειά από την κορουτίνα")
}
// Δέκτης
launch {
val μήνυμα = κανάλι.receive()
println(μήνυμα)
}
Έτσι, οι κορουτίνες μπορούν να ανταλλάσσουν δεδομένα και να συντονίζουν τη δουλειά τους χωρίς να μπλοκάρουν νήματα.