मैं एकल निर्माता, एकल उपभोक्ता फीफो क्वेरी की जरूरत है क्योंकिक्या ब्लॉकिंग कोलेक्शन <T> का उपयोग एकल-निर्माता, एकल उपभोक्ता फीफो क्वेरी के रूप में करना अच्छा है?
- मैं उनकी प्राप्ति के क्रम में संदेश संसाधित करने की जरूरत है।
- मुझे यह एसिंक्रोनस करने की ज़रूरत है क्योंकि कॉलर को संदेश संसाधित करते समय प्रतीक्षा नहीं करनी चाहिए।
- अगला संदेश प्रसंस्करण केवल तब शुरू किया जाना चाहिए जब पिछला संदेश प्रसंस्करण समाप्त हो जाए। कभी-कभी "प्राप्त करने" संदेशों की आवृत्ति "प्रसंस्करण" संदेशों की आवृत्ति से अधिक है। लेकिन औसतन मैं सभी संदेशों को संसाधित करने में सक्षम होना चाहिए, कभी-कभी मुझे उनमें से "कतार" पैक करना पड़ता है।
तो यह बहुत टीसीपी/आईपी मुझे लगता है, जहाँ आप एक निर्माता और एक उपभोक्ता है की तरह है, कभी-कभी आप, तेजी से आप संसाधित कर सकते हैं संदेश प्राप्त कर सकते हैं ताकि आप उन्हें क्वेरी करने के लिए किया है। जहां आदेश महत्वपूर्ण है और जहां कॉलर बिल्कुल उस चीज़ के साथ क्या कर रहा है उसमें रुचि नहीं लेता है।
यह बहुत आसान लगता है और मुझे लगता है संभावना है कि के लिए सामान्य Queue
उपयोग कर सकते हैं, लेकिन मुझे लगता है कि के लिए BlockingCollection
उपयोग करने के लिए क्योंकि मैं अपने काम के लिए ManualResetEvent
आदि
कैसे उपयुक्त BlockingCollection
के साथ किसी भी कोड लिखने के लिए नहीं करना चाहती चाहते हैं और शायद आप कुछ और सुझाव दे सकते हैं?
द्वारा किए गए परिवर्तनों के परिणामस्वरूप अपवादों को पकड़ सकते हैं। मुझे आशा है कि अगले कुछ रिलीज में' ब्लॉकिंग कोलेक्शन 'का डिफ़ॉल्ट फीफो कार्यान्वयन नहीं बदला जाएगा , लेकिन यह एक और सवाल है ... – javapowered
मेरा मानना है कि जब तक आप 'आईपॉडसर कॉन्स्यूमर कोलेक्शन' इंटरफ़ेस का संदर्भ दे रहे हैं, तब तक आपको ठीक होना चाहिए, और बीसीएल कक्षाओं के कार्यान्वयन कुछ अन्य तरीकों से फीफो ऑर्डर जैसे परिवर्तन नहीं कर सकते हैं – sll
मुझे लगता है कि स्टार्ट() विधि दो के लिए प्रतीक्षा करती है कार्य पूरा करने के लिए। जाहिर है कि 'निर्माता वर्कर' कार्य समाप्त हो जाएगा, लेकिन 'उपभोक्ता कार्यकर्ता' कभी खत्म नहीं होगा। क्या इसे ध्यान में रखा जाना चाहिए? –