مروان محمود3 نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 قريت ان الnode js هى لا تدعم الmulti threading , فاذا كيف يقال عنها انها سريعة اذا كانت لا تستخدم الا ثريد واحد؟ 1 اقتباس
1 شرف الدين حفني نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 ال node js تستخدم thread واحد لجميع الطلبات ,ولكن في الكواليس يتم إستخدام multi threads, ما معنى هذا ؟ معنى هذا أن عمليات القراءة والكتابة(i/o operations) تحدث بإستخدام الmultithreading , وتلك العمليات تشمل القراءة والكتابة من و إلى قاعدة بيانات القراءة والكتابة من و إلى شبكة القراءة والكتابة من وإلى المساحة التخزينية أي عملية قراءة وكتابة أخرى فمثلا هذا الكود funca(){ ///some code// fetch(URL).then(()=>callback()); ///some code } هنا يتم إستخدام الmulti threading في الخلفية حيث تتم عملية جلب البيانات بإستخدام الدالة fetch من خلال thread أخر محجوز في الnode js من أجل عمليات القراءة والكتابة, وفي نفس الوقت لدينا الthread الذى يستقبل الطلبات من المستخدمين والذى يقوم بتنفيذ باقي الكود فإذا كان لدينا 10 مستخدمين قاموا بإرسال طلب لكل مستخدم وكل طلب منهم يحتوي على عملية قراءة من قاعدة بيانات, في هذه الحالة يكون لدينا thread واحد فقط لمعالجة ال10 طلبات, و10 threads أخرين من أجل تنفيذ عمليات القراءة والكتابة 1 اقتباس
1 عبدالباسط ابراهيم نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 (معدل) نعم الnode تعتبر single-threaded مع أن هناك بعض الإضافات التي تضيف ال multi threading لل nodejs ولكن تقوم بمعاملة ال concurrent requests أو الطلبات المتزامنة بواسطة ال Singlethreaded event loop حيث تعتبر ال nodejs غير متزامنة وذلك يتيح لها معاملة الطلبات بدون عمل block لغيرها لاحظ الشرح التالي لتفهم الفكرة request ──> ينتج thread └──> إنتظار قاعدة البيانات └──> الرد request ──> ينتج thread └──> إنتظار قاعدة البيانات └──> الرد request ──> ينتج thread └──> إنتظار قاعدة البيانات └──> الرد لاحظ الشكل السابق كيف يعالج الطلبات بواسطة ال multi threading request ──> معالجة الأمر في قاعدة البيانات request ──> معالجة الأمر في قاعدة البيانات request ──> معالجة الأمر في قاعدة البيانات database request complete ──> الرد database request complete ──> الرد database request complete ──> الرد لاحظ الفرق بين طريقة المعالجة لذلك يتم تنفيذ ال multi threading بشكل مختلف ولكن قاعدة البيانات التي تفرق في السرعة قم بقراءة الإجابات على السؤال التالي للفهم أكثر تم التعديل في 31 أغسطس 2021 بواسطة عبدالباسط ابراهيم خطأ إملائي اقتباس
السؤال
مروان محمود3
قريت ان الnode js هى لا تدعم الmulti threading , فاذا كيف يقال عنها انها سريعة اذا كانت لا تستخدم الا ثريد واحد؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.