2010-06-18 9 views
5

मैं समझता हूं कि वे प्रति उपयोगकर्ता थ्रेड बनाने से अलग तरीके से काम करते हैं। वह वास्तव में कैसे काम करता है?ट्विस्ट/टॉरनाडो एट कैटेरा कैसे काम करते हैं

(? क्या 'गैर अवरुद्ध' इसके साथ कुछ करने के लिए है)

+0

अगर चीजें अभी भी अस्पष्ट हैं तो org.deftserver.web.IOLoop क्लास पर नज़र डालें। (www.deftserver.org) – Schildmeijer

उत्तर

6

मुड़ प्रलेखन से:

रिएक्टर मुड़ के भीतर घटना पाश की मूल है - पाश जो मुड़ते हुए अनुप्रयोगों को चलाता है। इवेंट लूप एक प्रोग्रामिंग निर्माण है जो किसी प्रोग्राम में ईवेंट या संदेशों को भेजता है और भेजता है। यह कुछ आंतरिक या बाहरी "ईवेंट प्रदाता" को कॉल करके काम करता है, जो आम तौर पर एक घटना तक पहुंचने तक अवरुद्ध होता है, और उसके बाद प्रासंगिक ईवेंट हैंडलर ("ईवेंट प्रेषित करता है") को कॉल करता है। रिएक्टर नेटवर्क संचार, थ्रेडिंग और इवेंट प्रेषण सहित कई सेवाओं को बुनियादी इंटरफेस प्रदान करता है।

भी देखें http://en.wikipedia.org/wiki/Event_loop

गैर अवरुद्ध कि में संबंधित है आप घटनाओं में (घटना स्रोत के किसी भी प्रकार की दो से अधिक से, या अधिक आम तौर) एक से अधिक सॉकेट पर संभाल करना चाहते हैं एक धागा, आप उन घटनाओं को संभालने के लिए संचालन को अवरुद्ध नहीं कर सकते हैं। यदि आप पहली सॉकेट पर अवरुद्ध पढ़ते हैं, तो आप दूसरी सॉकेट से तब तक नहीं पढ़ पाएंगे जब तक कि कुछ बाइट पहले पर नहीं पहुंच जाते। यह बहुत अच्छी तरह से काम नहीं करता है, क्योंकि आप वास्तव में नहीं जानते कि किस सॉकेट को पहले पढ़ने के लिए बाइट्स होने जा रहे हैं। इसके बजाय आप select (उपरोक्त लिंक किए गए विकिपीडिया पेज पर अधिक विस्तार से वर्णित) का उपयोग करने के लिए आपको बताते हैं कि कौन सा सॉकेट बाइट्स है और फिर उन्हें बिना सॉकेट के उस सॉकेट से पढ़ें।

इसका मतलब यह है कि आप किसी भी घटना के स्रोतों से घटनाओं की सेवा कर सकते हैं, एक दूसरे के बाद, उन्हें एक साथ संभालने की उपस्थिति दे सकते हैं।

+0

ठीक है, लेकिन घटना लूप में गैर-अवरुद्ध कैसे काम करता है? –

+0

मैंने ब्लॉकिंग बनाम गैर-अवरोधन पर चर्चा करने के बारे में थोड़ा और पाठ जोड़ा। –

संबंधित मुद्दे