• 0

ماهو Thread Pool في Node.js

دائما ما أسمع عن مصطلح Thread Pool في Node.js فماهو وكيف نستخدمه وماهي فائدته ؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

تعمل Node.js على نوعين من المسالك:

  • Event Loop: the main loop, the main thread, event thread والتي تعني المسلك الرئيسي/الحلقة الرئيسية التي تدور على الأحداث و تنظم عمل المخدم.
  • Worker Pool :thread pool وهي مجموعة المسالك المنشأة مع تشغيل المخدم والتي تقوم بأداء المهمات التي تأخذ وقت تنفيذ عالِ نسبيا لمنع إسناد هذه المهمة للمسلك الرئيسي وتوزيع المهمام مثل عمليات الإدخال و الإخراج IO بالإضافة لـ CPU-intensive tasks المهمات التي تشغل المعالج.

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

انشر على الشّبكات الاجتماعية


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

Nodejs يعمل على ثريد واحد فقط لذلك يوجد شئ يدعى ثريد بول و هي جميع الأحداث مثل نقر و إرسال طلب لبيان معين أو خدمع معينها و لأن ال node ليس متعدد الثريد اي فقط يستحدم ثريد واحد فقد فان جميع العمليات الموجهة الى السيرفير سوف تكون داخل هذه الواحة او المكان و هناك يتم التعامل مع كل طلب بشكل منفرد حيث انة يقوم بمعالجة الاوامر بحيث كل امر سيطلب شيئ معين من السيرفير و يعطيه البيانات المعينة ثم يخرج و ينتظر السرفير حتى يقوم بإجراء ما يمكن و إرجاع المعلومات المطلوبة من هذا الطلب 

بما معناه ال  thread pool آلية تحاكي ال multi Threading  و لكن باستخدام ثريد واحد فقط من الجهاز الذي يقوم بعمل جميع العمليات و توصيل جميع الطلبات و إعادة إرسال جميع البيانات المراده من خلاله 

ييذكر هنا ان هذه العملية موصولة بمفهوم ال asuync بحيث ال العمليات sync لن يقوم معالج الجافا سكربت بالذهاب الى سطر الكود التالي الا بعد انتهائ هذه العملية أولا و إن أخذت وقتها أما النوع الأخر فهو  async و هي العمليات التي يتم تنفيذها تزامنا مع إجراء عمليات أخرى بنفس الوقت لذى عند قراءة دالة من نوع async فان المعالج للجافا سكربت سيقوم بأجراء العملية و لكن لن ينتظر النتائج للذهاب الى السطر التالي من الكود او الأوامر 

 

و من هنا الThread pool هذا ما تقوم به فعليا تاخذ جميع الإحداث أو العمليات و تضعها في حيز التنفيذ و تطلب منها انتظار النتائج دون اعاقة للأوامر التالية 

انشر على الشّبكات الاجتماعية


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

اولا عند استخدام node  في حاسوب ما يعني ان هناك node process يشتغل على ذلك الحاسوب و ال process هو ببساطة برنامج قيد الاشتغال وكما نعلم nodejs هو برنامج ++c والذي بدوره سيشغل process عندما يشتغل ذلك ال process هو single thread و node يشتغل داخله يمكنك اعتبار ال single thread كصندوق للمعاملات و nodejs يشتغل في صندوق واحد مما يسهل عملية ايقاف اشتغال معاملات node في node يوجد محرك يسمى event loop و هذا المسؤول عن المعاملات داخل node و ال event loop عندما يأتيها تعامل ثقيل من شانه ايقاف المعاملات الاخرى ل node تقوم ال event loop بارسال هذا التعامل الثقيل ل thread pool و هو عبارة على 4 threads أي صناديق معاملات مصممة لانقاذ ال single thread الذي يشتغل عليه node وعدم تعطيله بتعامل ثقيل ومكلف 

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن