Java में BlockingQueue Interface को इम्प्लीमेंट कैसे करें



यह आलेख आपको एक विस्तृत और व्यापक ज्ञान प्रदान करेगा कि जावा में एक ब्लॉकिंग क्यू इंटरफ़ेस कैसे लागू किया जाए।

एक कतार किसी भी प्रोग्रामिंग भाषा का एक महत्वपूर्ण पहलू है। खासकर अगर हम बात करें । इस लेख में, हम निम्नलिखित क्रम में Java में BlockingQueue Interface पर चर्चा करेंगे:

Java में BlockingQueue Interface क्या है?

Java में एक BlockingQueue Interface एक कतार है जो तब ब्लॉक होती है जब आप इससे हटने का प्रयास करते हैं और कतार खाली होती है, या यदि आप आइटम को एन्क्यू करने की कोशिश करते हैं और कतार पहले से ही भरी हुई है। एक खाली कतार से बाहर निकलने की कोशिश कर रहा एक धागा तब तक अवरुद्ध हो जाता है जब तक कि कोई अन्य धागा कतार में किसी वस्तु को सम्मिलित नहीं करता है। एक आइटम को पूर्ण कतार में रखने की कोशिश करने वाला एक धागा अवरुद्ध हो जाता है जब तक कि कोई अन्य धागा कतार में जगह नहीं बनाता है, या तो एक या एक से अधिक वस्तुओं को हटाकर या पूरी तरह से कतार को साफ करके।





c ++ में प्राथमिकता कतार

है-जावा में एक रिश्ता

जावा में ब्लॉकिंग क्यू इंटरफ़ेस को स्वीकार नहीं करता हैअमान्यमूल्यों और फेंकशून्य सूचक का अपवादयदि आप कतार में शून्य मान को संग्रहीत करने का प्रयास करते हैं।Java BlockingQueue कार्यान्वयन हैं सुरक्षित धागा । सभी पंक्तिबद्ध विधियां प्रकृति में परमाणु हैं और आंतरिक ताले या अन्य प्रकार के संगरोध नियंत्रण का उपयोग करती हैं।



जावा कतार कक्षा आरेख

जावा कतार इंटरफ़ेस संग्रह इंटरफ़ेस का विस्तार करता है। संग्रह इंटरफ़ेस Iterable इंटरफ़ेस का विस्तार करता है। अक्सर उपयोग की जाने वाली कतार कार्यान्वयन कक्षाओं में से कुछ हैं लिंक्डलिस्ट, प्रायोरिटी क्यू, अर्रेब्लॉकिंग क्यू, डेलेक्यूक्यू, लिंक्डब्लॉकिंग क्यू, प्रायोरिटीब्लॉकिंग क्यू,आदि .. AbstractQueue क्यू को लागू करने में प्रयास को कम करने के लिए क्यू इंटरफ़ेस का एक कंकाल कार्यान्वयन प्रदान करता है।

ब्लॉकिंग क्यू प्रकार

BlockingQueue दो प्रकार हैं:



  • बिना कतार के: अवरुद्ध कतार की क्षमता को Integer.MAX_VALUE पर सेट किया जाएगा। निर्बाध अवरुद्ध कतार के मामले में, कतार कभी अवरुद्ध नहीं होगी क्योंकि यह बहुत बड़े आकार तक बढ़ सकती है। जब आप तत्वों को जोड़ते हैं तो इसका आकार बढ़ता है।

वाक्य - विन्यास:
अवरोधक कतार अवरुद्ध करना कतार = नया लिंक्डब्लॉकिंगडेक ()

  • बाध्य कतार: दूसरी प्रकार की कतार बंधी हुई कतार है। बंधी हुई कतार के मामले में, आप कतार निर्माणकर्ता में कतार की क्षमता को दरकिनार कर एक कतार बना सकते हैं:
    वाक्य - विन्यास:
    // क्षमता 5 के साथ एक अवरुद्ध कतार बनाता है

अवरोधन कतार अवरुद्ध करना कतार = नया लिंक्डब्लॉकिंगडेक (5)

ब्लॉकिंग क्यू इंटरफ़ेस में तरीके

प्रकार बदलें विधि सिंटेक्स के लिए इस्तेमाल होता है विवरण
बूलियन जोड़ें (ई) सम्मिलन

यदि यह संभव हो तो इस तत्व में निर्दिष्ट तत्व सम्मिलित करता है, अगर ऐसा संभव हो तो बिना किसी संभावित प्रतिबंध का उल्लंघन किए, सफलता पर वापस लौटकर और वर्तमान में कोई स्थान उपलब्ध न होने पर IllegalStateException को फेंकना संभव है।

बूलियन शामिल (ऑब्जेक्ट ओ) की जांच

यदि यह कतार निर्दिष्ट तत्व शामिल है, तो सही है।

int drainTo (संग्रह c) पुनः प्राप्त करना या हटाना

इस कतार से सभी उपलब्ध तत्वों को निकालता है और उन्हें दिए गए संग्रह में जोड़ता है।

int drainTo (संग्रह सी, इंट अधिकतम) पुनः प्राप्त करना या हटाना

इस कतार से उपलब्ध तत्वों में से अधिकांश को हटाकर दिए गए संग्रह में जोड़ देता है।

बूलियन प्रस्ताव (ई) सम्मिलन

इस कतार में निर्दिष्ट तत्व को सम्मिलित करता है यदि क्षमता प्रतिबंधों का उल्लंघन किए बिना तुरंत ऐसा करना संभव है, तो वर्तमान में कोई स्थान उपलब्ध न होने पर सफलता और असत्य पर वापस लौटना।

बूलियन ऑफ़र (ई ई, लॉन्ग टाइमआउट, टाइम यूनिट यूनिट) सम्मिलन

यदि उपलब्ध होने के लिए स्थान आवश्यक हो तो निर्दिष्ट प्रतीक्षा समय तक इस कतार में निर्दिष्ट तत्व सम्मिलित करता है।

जावा में int के लिए डबल परिवर्तित
है पोल (लंबे समय तक, टाइम यूनिट इकाई) पुनः प्राप्त करना या हटाना

इस कतार के प्रमुख को पुनः प्राप्त करता है और हटाता है, यदि तत्व उपलब्ध होने के लिए आवश्यक हो तो निर्दिष्ट प्रतीक्षा समय तक प्रतीक्षा करें।

शून्य डाल (ई ई) सम्मिलन

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

जावा क्लासपैथ विंडो 7 सेट करें
int शेष क्षमता () की जांच

उन अतिरिक्त तत्वों की संख्या देता है जिन्हें यह कतार आदर्श रूप से (स्मृति या संसाधन की कमी के अभाव में) अवरुद्ध किए बिना स्वीकार कर सकती है, या कोई आंतरिक सीमा नहीं होने पर Integer.MAX_VALUE।

बूलियन निकालें (ऑब्जेक्ट ओ) + पुनः प्राप्त करना या हटाना

इस कतार से निर्दिष्ट तत्व का एक भी उदाहरण निकालता है,अगर यह मौजूद है।

है लेना() पुनः प्राप्त करना या हटाना

इस कतार के प्रमुख को निकालता है और हटाता है, यदि कोई तत्व उपलब्ध होने तक आवश्यक हो तो प्रतीक्षा करता है।

ब्लॉकिंग क्यू इंटरफ़ेस जावा में उदाहरण: सेवा

पैकेज com.journaldev.concurrency import java.util.concurrent.ArrayBlockingQueue import java.util.concurrent.BlockingQueue सार्वजनिक वर्ग निर्माताचोन्सुमेरिसू {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रीग [] args) {// साइज के ब्लॉकिंग क्यूबेकशन 10 ° 10 सेकंड के लिए ब्लॉक बनाना। 10) निर्माता निर्माता = नए निर्माता (कतार) उपभोक्ता उपभोक्ता = नए उपभोक्ता (कतार) // कतार में नए संदेश उत्पन्न करने के लिए उत्पादक (निर्माता) .start () // शुरू करने वाले उपभोक्ता कतार नए धागे (उपभोक्ता) से संदेशों का उपभोग करने के लिए शुरू करते हैं। .start () System.out.println ('निर्माता और उपभोक्ता शुरू हो गया है')}}

इसके साथ, हम जावा लेख में ब्लॉकिंग क्यू इंटरफ़ेस के अंत में आते हैं। मुझे आशा है कि आपकी सभी अवधारणाएँ अब स्पष्ट हैं।

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का के जावा J2EE और SOA प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किए गए हैं जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक शुरुआत देने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस 'ब्लॉकिंग क्यू इंटरफ़ेस इन जावा' ब्लॉग के टिप्पणी अनुभाग में उल्लेख करें और हम जल्द से जल्द आपके पास वापस आ जाएंगे।