اذهب إلى المحتوى
  • 0

هل node.js تدعم multi threading؟

مروان محمود3

السؤال

Recommended Posts

  • 1

ال node js تستخدم thread واحد لجميع الطلبات ,ولكن في الكواليس يتم إستخدام multi threads, ما معنى هذا ؟ معنى هذا أن عمليات القراءة والكتابة(i/o operations) تحدث بإستخدام الmultithreading , وتلك العمليات تشمل

  1. القراءة والكتابة من و إلى قاعدة بيانات
  2. القراءة والكتابة من و إلى شبكة
  3. القراءة والكتابة من وإلى المساحة التخزينية
  4. أي عملية قراءة وكتابة أخرى

فمثلا هذا الكود 

funca(){
///some code//
  fetch(URL).then(()=>callback());
///some code
}

هنا يتم إستخدام الmulti threading في الخلفية حيث تتم عملية جلب البيانات بإستخدام الدالة fetch من خلال thread أخر محجوز في الnode js من أجل عمليات القراءة والكتابة, وفي نفس الوقت لدينا الthread الذى يستقبل الطلبات من المستخدمين والذى يقوم بتنفيذ باقي الكود

فإذا كان لدينا 10 مستخدمين قاموا بإرسال طلب لكل مستخدم وكل طلب منهم يحتوي على عملية قراءة من قاعدة بيانات, في هذه الحالة يكون لدينا thread واحد فقط لمعالجة ال10 طلبات, و10 threads أخرين من أجل تنفيذ عمليات القراءة والكتابة 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

نعم ال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 بشكل مختلف ولكن قاعدة البيانات التي تفرق في السرعة

قم بقراءة الإجابات على السؤال التالي للفهم أكثر

 

تم التعديل في بواسطة عبدالباسط ابراهيم
خطأ إملائي
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...