محمد هاني3 نشر 20 مايو 2021 أرسل تقرير نشر 20 مايو 2021 دائما ما أسمع عن مصطلح Thread Pool في Node.js فماهو وكيف نستخدمه وماهي فائدته ؟ 1 اقتباس
0 Wael Aljamal نشر 20 مايو 2021 أرسل تقرير نشر 20 مايو 2021 تعمل Node.js على نوعين من المسالك: Event Loop: the main loop, the main thread, event thread والتي تعني المسلك الرئيسي/الحلقة الرئيسية التي تدور على الأحداث و تنظم عمل المخدم. Worker Pool :thread pool وهي مجموعة المسالك المنشأة مع تشغيل المخدم والتي تقوم بأداء المهمات التي تأخذ وقت تنفيذ عالِ نسبيا لمنع إسناد هذه المهمة للمسلك الرئيسي وتوزيع المهمام مثل عمليات الإدخال و الإخراج IO بالإضافة لـ CPU-intensive tasks المهمات التي تشغل المعالج. إن نشاء مسلك جديد عند كل مهمة جديدة أو عندما نحتاج له، هي عملية تحتاج وقت لتتم مع حجز الموارد الخاصة بالحاسوب مثل الذاكرة و مجدول المعالج، لذلك يوجد thread pool (مجمع من المسالك) يحوي مسالك جاهزة لبدء العمل على المهمة التي توكل لها (تمرير البيانات و الشيفرة البرمجية التي تنفذها) مما يختصر الوقت و يعطي أداء أفضل من المخدم. اقتباس
0 Nuhla Almasri نشر 20 مايو 2021 أرسل تقرير نشر 20 مايو 2021 Nodejs يعمل على ثريد واحد فقط لذلك يوجد شئ يدعى ثريد بول و هي جميع الأحداث مثل نقر و إرسال طلب لبيان معين أو خدمع معينها و لأن ال node ليس متعدد الثريد اي فقط يستحدم ثريد واحد فقد فان جميع العمليات الموجهة الى السيرفير سوف تكون داخل هذه الواحة او المكان و هناك يتم التعامل مع كل طلب بشكل منفرد حيث انة يقوم بمعالجة الاوامر بحيث كل امر سيطلب شيئ معين من السيرفير و يعطيه البيانات المعينة ثم يخرج و ينتظر السرفير حتى يقوم بإجراء ما يمكن و إرجاع المعلومات المطلوبة من هذا الطلب بما معناه ال thread pool آلية تحاكي ال multi Threading و لكن باستخدام ثريد واحد فقط من الجهاز الذي يقوم بعمل جميع العمليات و توصيل جميع الطلبات و إعادة إرسال جميع البيانات المراده من خلاله ييذكر هنا ان هذه العملية موصولة بمفهوم ال asuync بحيث ال العمليات sync لن يقوم معالج الجافا سكربت بالذهاب الى سطر الكود التالي الا بعد انتهائ هذه العملية أولا و إن أخذت وقتها أما النوع الأخر فهو async و هي العمليات التي يتم تنفيذها تزامنا مع إجراء عمليات أخرى بنفس الوقت لذى عند قراءة دالة من نوع async فان المعالج للجافا سكربت سيقوم بأجراء العملية و لكن لن ينتظر النتائج للذهاب الى السطر التالي من الكود او الأوامر و من هنا الThread pool هذا ما تقوم به فعليا تاخذ جميع الإحداث أو العمليات و تضعها في حيز التنفيذ و تطلب منها انتظار النتائج دون اعاقة للأوامر التالية اقتباس
0 Salah Eddin Beriani2 نشر 21 مايو 2021 أرسل تقرير نشر 21 مايو 2021 اولا عند استخدام 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 وعدم تعطيله بتعامل ثقيل ومكلف اقتباس
السؤال
محمد هاني3
دائما ما أسمع عن مصطلح Thread Pool في Node.js فماهو وكيف نستخدمه وماهي فائدته ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.