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

ماهو Thread Pool في Node.js

محمد هاني3

السؤال

Recommended Posts

  • 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 وعدم تعطيله بتعامل ثقيل ومكلف 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...