سؤال

أفهم أنهم يعملون بطريقة ما عن صنع مؤشر ترابط لكل مستخدم. كيف بالضبط هذا يعمل؟

(هل "عدم الحظر" له علاقة به؟)

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

المحلول

من الوثائق الملتوية:

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

أنظر أيضا http://en.wikipedia.org/wiki/event_loop

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

كل هذا يعني أنه يمكنك خدمة الأحداث من أي عدد من مصادر الأحداث ، واحدة تلو الأخرى ، مما يعطي مظهر التعامل معها جميعًا في وقت واحد.

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