Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την αρχή λειτουργίας του κύκλου επεξεργασίας γεγονότων σε ασύγχρονα συστήματα;

sobes.tech AI

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

Ο βρόχος γεγονότων (event loop) σε συστήματα ασύγχρονα όπως το Node.js είναι υπεύθυνος για τη διαχείριση της εκτέλεσης ασύγχρονων λειτουργιών χωρίς να μπλοκάρει το κύριο νήμα.

Αρχή λειτουργίας:

  1. Όλες οι λειτουργίες που απαιτούν χρόνο (π.χ. ανάγνωση αρχείων, αιτήματα δικτύου) αποστέλλονται στην ουρά γεγονότων.
  2. Ο βρόχος γεγονότων ελέγχει συνεχώς αυτή την ουρά και, όταν μια λειτουργία ολοκληρώνεται, καλεί το αντίστοιχο callback ή διαχειριστή.
  3. Το κύριο νήμα δεν μπλοκάρεται, συνεχίζει να εκτελεί τον επόμενο κώδικα μέχρι να εμφανιστούν ολοκληρωμένα γεγονότα.

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

Παράδειγμα:

console.log('Αρχή');
setTimeout(() => {
  console.log('Ασύγχρονο γεγονός');
}, 1000);
console.log('Τέλος');

Το αποτέλεσμα θα είναι:

Αρχή
Τέλος
Ασύγχρονο γεγονός

Επειδή το setTimeout τοποθετεί τη λειτουργία στην ουρά γεγονότων και ο βρόχος γεγονότων την καλεί αργότερα.