سكالا: لماذا الجهات الفاعلة خفيفة الوزن؟

StackOverflow https://stackoverflow.com/questions/2439252

  •  19-09-2019
  •  | 
  •  

سؤال

ما الذي يجعل الممثلين خفيف الوزن؟

أنا لست متأكدا من كيفية عملها. ألا يفعلون خيوط منفصلة؟

هل كانت مفيدة؟

المحلول

عندما يقولون خفيفة الوزن تعني أنه لا يتم تعيين كل ممثل إلى مؤشر ترابط واحد.

يوفر JVM مؤشرات ترابط ذاكرة مشتركة بأقفال كأشكال أساسية من تجريدات التزامن. لكن خيوط الذاكرة المشتركة هي الوزن الثقيل تماما وتحمل عقوبات أداء شديدة من تبديل السياق النفقات العامة. بالنسبة لتنفيذ الممثل بناء على تعيين واحد إلى واحد مع مؤشرات الترابط JVM، لن يكون الحمولة العملية لكل ممثل Scala خفيف الوزن أننا نستطيع أن نفرز مليون حالة من الممثل لحسوبة محددة. من هنا تم تصميم جهات الفاعلة Scala ككائنات حدث خفيفة الوزن، والتي يتم تنفيذه وتنفذها على تجمع مؤشر ترابط الخيط الأساسي يتم تغيير حجمها تلقائيا عند كل كتلة المواضيع على عمليات التشغيل الطويلة. في الواقع، تنفذ Scala نموذج موحد للجهات الفاعلة - مؤسسات الموضوع والقائم على الحدث. تقدم جهات الفم من Scala شكلين من آليات التعليق - تعليق كامل للإطار (تم تنفيذه كما تلقي) وتعليق استنادا إلى إغلاق استمرار (تنفذ كتفاعل). في حالة وجود الجهات الفاعلة القائمة على الأحداث، يتم تمثيل الانتظار عند التتفاعل بإغلاق استمرار، أي إغلاق يلتقط بقية حساب الممثل. عندما يتلقى الممثل المعلق رسالة تتوافق مع أحد الأنماط المحددة في الممثل، يتم تنفيذ الاستمرار من خلال جدولة المهمة إلى أحد مؤشرات الترابط من بركة الموضوع الأساسية. ال ورق "الجهات الفاعلة التي توحد المواضيع والأحداث" من قبل Haller و Odersky تناقش تفاصيل التنفيذ.

مصدر

نصائح أخرى

مرجع مهم الجهات الفاعلة التي توحد المواضيع والأحداث

لا أعتقد أننا يجب أن نعزز هذا الممثل هو ذلك وزن خفيف.

أولا الجهات الفاعلة القائمة على الخيط هي ممثل لكل موضوع حتى لا يخفف الوزن على الإطلاق.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top