سؤال

عندما يقولون عمل تحكم في الدعامات إطار متعدد الخيوط ، يعني أن هناك مثيلات متعددة من بريمج أخذ الطلب وإحالتها إلى النموذج.أو هل يعني ذلك أن هناك مثيل واحد أخذ جميع طلبات ؟ أي مرئيات سيكون موضع تقدير

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

المحلول

كما في معظم servlets, موضوع مستقل يتم إنشاؤه لمعالجة كل طلب.لديك لتنفيذ SingleThreadedModel واجهة للحصول على مثيل جديد من بريمج لكل طلب.

نصائح أخرى

انظر http://struts.apache.org/1.x/userGuide/building_controller.html

الدعامات تحكم بريمج يقوم بإنشاء مثيل واحد فقط من العمل الخاص بك الطبقة ، و يستخدم هذا المثال إلى خدمة جميع الطلبات.وبالتالي تحتاج إلى كتابة موضوع آمن عمل الطبقات.تتبع نفس المبادئ التوجيهية التي قد تستخدم في كتابة موضوع آمن Servlets.وهنا اثنين من المبادئ التوجيهية العامة التي سوف تساعدك على كتابة قابلة للتطوير ، مؤشر الترابط-الآمن عمل فصول:

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

  • الحفاظ على الموارد - كقاعدة عامة ، تخصيص الموارد النادرة والحفاظ عليها عبر يطلب من المستخدم نفسه (في جلسة المستخدم) يمكن أن يسبب المشاكل الاستيعاب.على سبيل المثال, إذا كان التطبيق الخاص بك يستخدم JDBC و يمكنك تخصيص منفصل JDBC الاتصال لكل مستخدم ، ربما كنت ستطبعها إلى تشغيل في بعض القضايا التدرجية عند موقع الويب الخاص بك فجأة يظهر على سمبي.يجب أن نسعى جاهدين إلى استخدام حمامات الإفراج الموارد (مثل اتصالات قاعدة البيانات) قبل إحالة التحكم المناسبة عرض العنصر -- حتى لو كان فول الطريقة كنت قد دعا يطرح استثناء.

الدعامات 1 ليس موضوع آمنة ، ولكن بالنسبة strus 2, فمن مثيل واحد لكل طلب.

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