Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ მოვლენების დამუშავების ციკლის მუშაობის პრინციპი ასინქრონულ სისტემებში?

sobes.tech AI

პასუხი AI-სგან

Node.js-ის მსგავს ასინქრონ სისტემებში, სადაც მოვლენის ციკლი (event loop) პასუხისმგებელია ასინქრონული ოპერაციების შესრულების მართვაზე, ისე რომ ძირითადი ნაკადი არ ბლოკავდეს.

მუშაობის პრინციპი:

  1. ყველა დროის საჭირო ოპერაცია (მაგ., ფაილის წაკითხვა, ქსელის მოთხოვნები) გადის მოვლენის რიგში.
  2. მოვლენის ციკლი მუდმივად ამოწმებს ამ რიგს და, როდესაც ოპერაცია დასრულდება, იძახის შესაბამის callback-ს ან handler-ს.
  3. ძირითადი ნაკადი არ ბლოკდება, ის აგრძელებს შემდეგ კოდის შესრულებას, სანამ დასრულებული მოვლენა არ გამოჩნდება.

ეს საშუალებას აძლევს ეფექტურად გამოიყენოს რესურსები და ერთდროულად მრავალი ოპერაცია პარალელურად, მიუხედავად Node.js-ის ერთწრიანი ბუნებისა.

მაგალითი:

console.log('დაწყება');
setTimeout(() => {
  console.log('ასინქრონული მოვლენა');
}, 1000);
console.log('დასასრული');

გამომავალი იქნება:

დაწყება
დასასრული
ასინქრონული მოვლენა

რადგან setTimeout სვამს ფუნქციას მოვლენის რიგში, ხოლო მოვლენის ციკლი მას მოგვიანებით გამოიძახებს.