इस उदाहरण में https://stackoverflow.com/a/9980346/93647 और यहां Why is my disruptor example so slow? (प्रश्न के अंत में) 1 प्रकाशक है जो आइटम और 1 उपभोक्ता प्रकाशित करता है।1 प्रकाशक और 4 समांतर उपभोक्ताओं के साथ विघटनकर्ता उदाहरण
लेकिन मेरे मामले में उपभोक्ता कार्य अधिक जटिल है और कुछ समय लगता है। तो मैं 4 उपभोक्ताओं को चाहता हूं जो समानांतर डेटा को संसाधित करते हैं।
तो उदाहरण के लिए अगर निर्माता उपज संख्या: 1,2,3,4,5,6,7,8,9,10,11 ..
मैं consumer1 1,5,9 को पकड़ने के लिए चाहते हैं, ... उपभोक्ता 2 2,6,10 पकड़ने के लिए ... उपभोक्ता 3 को 3,7,11 पकड़ने के लिए ... उपभोक्ता 4 को 4,8,12 पकड़ने के लिए ... (ठीक है इन नंबरों को नहीं, विचार यह है कि डेटा समानांतर में संसाधित किया जाना चाहिए, मुझे परवाह नहीं है कि किस उपभोक्ता पर कुछ संख्या संसाधित की जाती है)
और याद रखें कि यह समानांतर करने की आवश्यकता है क्योंकि असली एप्लिकेशन उपभोक्ता कार्य बहुत महंगा है। मैं उम्मीद करता हूं कि मल्टीकोर सिस्टम की शक्ति का उपयोग करने के लिए उपभोक्ताओं को विभिन्न धागे में निष्पादित किया जाएगा।
बेशक मैं केवल 4 रिंगबफर बना सकता हूं और 1 उपभोक्ता को 1 रिंग-बफर से जोड़ सकता हूं। इस तरह मैं मूल उदाहरण का उपयोग कर सकते हैं। लेकिन मुझे लगता है कि यह सही नहीं होगा। संभावना है कि 1 प्रकाशक (1 रिंगबफर) और 4 उपभोक्ताओं को बनाना सही होगा - जैसा कि मुझे चाहिए।
गूगल समूहों में एक बहुत ही simular प्रश्न के लिए लिंक जोड़ना: https://groups.google.com/forum/#!msg/lmax-disruptor/-CLapWuwWLU/GHEP4UkxrAEJ
तो हम दो विकल्प हैं: हर अलावा पर
- एक अंगूठी कई उपभोक्ताओं (प्रत्येक उपभोक्ता होगा "वेक-अप", सभी उपभोक्ता के पास वही WaitStrategy होना चाहिए)
- कई "एक अंगूठी - एक उपभोक्ता" (प्रत्येक उपभोक्ता केवल उस डेटा पर जाग जाएगा जो इसे संसाधित करना चाहिए। प्रत्येक उपभोक्ता के पास प्रतीक्षा प्रतीक्षा करनी चाहिए)।
धन्यवाद! कोशिश करेंगे! – javapowered
क्या आपको पता है कि रिंगबफर 'अगला() '' प्रकाशित करें 'विधियों को कॉल थ्रेड सुरक्षित है या नहीं? क्या मैं उन्हें समानांतर में बुला सकता हूं? क्या मैं दो अलग-अलग धागे रिंगबफर 'नेक्स्ट' विधि से कॉल कर सकता हूं? – javapowered
भी यह कैसे आंतरिक रूप से विघटनकारी बनाता है? कितने धागे बनाए जाते हैं? क्या विघटनकर्ता प्रत्येक उपभोक्ता के लिए अलग धागा बनाता है? या कुछ प्रकार के थ्रेडपूल का उपयोग किया जाता है? – javapowered