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