تجميع الخيوط (أنماط تصميم البرمجيات)

من ويكيبيديا، الموسوعة الحرة
عينة تجمع مؤشر ترابط (مربعات خضراء) مع مهام انتظار (أزرق) ومهام مكتملة (أصفر)

في برمجة الحاسوب، يعد تجميع الخيوط (بالإنجليزية: thread pool)‏ أحد أنماط تصميم البرمجيات لتحقيق تزامن التشغيل في برنامج حاسوبي ما.

آلية العمل[عدل]

إنشاء عدد من سلاسل العمليات عند بدء التشغيل ووضعها في مجموعة، حيث يجلسون وينتظرون العمل. عندما يتلقى الخادم طلبًا، بدلاً من إنشاء سلسلة رسائل، فإنه بدلاً من ذلك يرسل الطلب إلى تجمع سلاسل المحادثات ويستأنف في انتظار طلبات إضافية. إذا كان هناك مؤشر ترابط متاح في التجمع، يتم إيقاظه، ويتم تقديم الطلب على الفور. إذا لم يحتوي التجمع على سلسلة رسائل متاحة، يتم وضع المهمة في قائمة الانتظار حتى يصبح أحدها مجانيًا. بمجرد أن يكمل الخيط خدمته، فإنه يعود إلى التجمع وينتظر المزيد من العمل. تعمل تجمعات مؤشرات الترابط بشكل جيد عندما يمكن تنفيذ المهام المرسلة إلى التجمع بشكل غير متزامن

إحدى مزايا تجمع مؤشرات الترابط هي:

  • غالبًا ما تكون خدمة الطلب باستخدام سلسلة رسائل موجودة أسرع من الانتظار لإنشاء سلسلة رسائل.
  • يحد تجمع مؤشرات الترابط عدد مؤشرات الترابط الموجودة عند أي نقطة واحدة. هذا مهم بشكل خاص في الأنظمة التي لا يمكنها دعم عدد كبير من سلاسل العمليات المتزامنة.
  • فصل المهمة المراد القيام بها عن آليات إنشاء المهمة يسمح لنا باستخدام استراتيجيات مختلفة لتشغيل المهمة.على سبيل المثال، يمكن جدولة المهمة للتنفيذ بعد تأخير زمني أو تنفيذها بشكل دوري..

يمكن تعيين عدد مؤشرات الترابط في التجمع بناءً على عوامل مثل عدد وحدات المعالجة المركزية في النظام، ومقدار الذاكرة الفعلية، والعدد المتوقع لطلبات العملاء المتزامنة. يمكن لمعماريات تجمع مؤشرات الترابط الأكثر تعقيدًا ضبط عدد سلاسل العمليات بشكل ديناميكي وفقًا لأنماط الاستخدام. توفر مثل هذه البنى فائدة إضافية لوجود تجمع أصغر - وبالتالي استهلاك ذاكرة أقل - عندما يكون الحمل على النظام منخفضًا.[1][2]

مراجع[عدل]

  1. ^ Abraham Silberschatz, Abraham; Greg Gagne (2002). Peter B. Galvin (ed.). Operating System Concepts (بالإنجليزية). New York: willy – via 10th edition. {{استشهاد بكتاب}}: |عمل= تُجوهل (help)
  2. ^ "What is a thread pool?". Blrfl. 12/4/2012. مؤرشف من الأصل في 13 أبريل 2020. اطلع عليه بتاريخ 4/11/2012. {{استشهاد ويب}}: تحقق من التاريخ في: |تاريخ الوصول= و|تاريخ= (مساعدة)