Sobes.tech
Junior — Middle
103

Εξηγήστε τη λειτουργία των κορουτινών και πώς διαχειρίζονται κατά τη διάρκεια της εκτέλεσης.

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

sobes.tech AI

Οι κορουτίνες είναι συναρτήσεις που μπορούν να διακόψουν την εκτέλεσή τους και να την συνεχίσουν αργότερα, διατηρώντας την κατάσταση τους. Στην Python, οι κορουτίνες υλοποιούνται με τη λέξη-κλειδί async def και διαχειρίζονται μέσω ενός βρόχου γεγονότων (event loop).

Κατά τη διάρκεια της εκτέλεσης, μια κορουτίνα μπορεί να "περιμένει" (await) την ολοκλήρωση μιας ασύγχρονης λειτουργίας, απελευθερώνοντας τον έλεγχο σε άλλες εργασίες. Αυτό επιτρέπει την αποτελεσματική εργασία με λειτουργίες εισόδου/εξόδου χωρίς να μπλοκάρει το νήμα.

Παράδειγμα μιας απλής κορουτίνας:

import asyncio

async def say_hello():
    print("Γειά")
    await asyncio.sleep(1)  # διακόπτει την κορουτίνα για 1 δευτερόλεπτο
    print("Κόσμος")

asyncio.run(say_hello())

Εδώ, το await μεταφέρει τον έλεγχο στον βρόχο γεγονότων, ο οποίος μπορεί να εναλλάσσεται μεταξύ άλλων κορουτίνων, διασφαλίζοντας την ασύγχρονη λειτουργία.

Έτσι, οι κορουτίνες επιτρέπουν τη συγγραφή ασύγχρονου κώδικα που μοιάζει με συγχρονικό, απλοποιώντας τη διαχείριση παράλληλων εργασιών.