Async مقابل رمز المزامنة

الفرق بين تشغيل الكود بشكل متزامن أو غير متزامن

ربما سمعت أن Node.js سريع لأنه يوفر واجهات برمجة تطبيقات غير متزامنة لجميع العمليات باهظة الثمن ، مثل الوصول إلى الشبكة أو نظام الملفات.

ماذا يعني وجود واجهة برمجة تطبيقات غير متزامنة؟

إذا كنت تتوقع أن تستغرق عملية ما الكثير من الوقت ، فمن المنطقي تشغيلها بشكل غير متزامن ، بحيث يمكن تشغيل التعليمات البرمجية الأخرى في هذه الأثناء ، ويكون لها رابط يسمى عند انتهاء هذه العملية.

هذه هي الطريقة التي يمكن بها لـ Node.js التعامل مع حركة مرور أكثر بكثير من PHP أو Rails على سبيل المثال دون استخدام مكتبات غير متزامنة.

تحتوي معظم لغات البرمجة التي لم تكن غير متزامنة تقليديًا اليوم على مكتبات تابعة لجهات خارجية تنفذ طرقًا لاستدعاء التعليمات البرمجية غير المتزامنة.

بخلاف ذلك ، ما يحدث عادةً على سبيل المثال في PHP أو Python code هو أن الخيط يتوقف حتى تنتهي عملية المزامنة (القراءة من الشبكة ، كتابة ملف ..).

إذا تم تشغيل الكود بشكل غير متزامن ، فلن تكون وحدة المعالجة المركزية في وضع الخمول في انتظار اكتمال العملية ، ولكن يمكنها الاستمرار في مهام أخرى في قائمة الانتظار حتى تصبح العملية الأصلية جاهزة للمضي قدمًا.


المزيد من دروس js: