Junior — Middle
Ποια μέθοδοι μπορούν να χρησιμοποιηθούν για να εναλλάσσεται η εκτέλεση των κορουτινών μέσα σε ένα ίδιο νήμα;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, οι κορουτίνες μπορούν να εναλλάσσονται μέσα σε ένα ίδιο νήμα χρησιμοποιώντας διαφορετικούς dispatcher και συναρτήσεις:
- withContext(Dispatchers.Main) — εναλλαγή στο κύριο (UI) νήμα.
- withContext(Dispatchers.Default) — εναλλαγή σε μια ομάδα νημάτων για εργασίες που απαιτούν πολύ CPU.
- withContext(Dispatchers.IO) — εναλλαγή σε μια ομάδα νημάτων για λειτουργίες εισόδου/εξόδου.
Επιπλέον, μπορείτε να χρησιμοποιήσετε το yield() για εθελοντική μεταβίβαση ελέγχου σε άλλη κορουτίνα εντός του τρέχοντος νήματος.
Παράδειγμα εναλλαγής πλαισίου:
launch {
// Εργασία στο κύριο νήμα
withContext(Dispatchers.IO) {
// Εκτέλεση λειτουργίας εισόδου/εξόδου
}
// Επιστροφή στο κύριο νήμα
}