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