यह सवाल .. मेरी पहले प्रश्नों में से एक के साथ संबंधित हैको अवरुद्ध करने के लिए कतार - अधिक आवश्यकता जानकारी
वहाँ में अवरुद्ध प्रकृति एक लाभ के रूप में उल्लेख किया है।
मैंने अवरोध प्रकृति को प्रदर्शित करने के लिए कुछ सरल कोड विकसित करने की कोशिश की लेकिन मैं अटक गया। मैंने अभी आकार 4 के BlockingQueue
बनाने की कोशिश की और 5 तत्व जोड़ने की कोशिश की और java.lang.IllegalStateException
के साथ समाप्त हो गया। क्या कोई मुझे BlockingQueue
की प्रकृति को अवरुद्ध करने के लिए एक कोड उदाहरण दिखा सकता है?
public static void main(String[] args) {
BlockingQueue<String> bq = new LinkedBlockingQueue<String>(4);
try {
bq.offer("A");
bq.offer("B");
bq.offer("C");
bq.offer("D");
bq.offer("E");
System.out.println("1 = " + bq.take());
System.out.println("2 = " + bq.take());
System.out.println("3 = " + bq.take());
System.out.println("4 = " + bq.take());
System.out.println("5 = " + bq.take());
System.out.println("6 = " + bq.take());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
मैं इस कोड खंड का इस्तेमाल किया। इस मामले में मैं आकार 4 के साथ 5 तत्वों को कतार में डालने की कोशिश कर रहा हूं। इस मामले में 4 तत्व (ए, बी, सी, डी) को कतार में जोड़ा जाना चाहिए। फिर मैं मुद्रण करते समय take()
विधि पर कॉल कर रहा हूं। System.out.println("1 = " + bq.take());
पर कॉल करते समय "ई" को कतार में स्वचालित रूप से डाला नहीं जाना चाहिए? क्योंकि यह एक मुफ्त स्लॉट हो जाता है?
पहले मैंने एड + पोल का इस्तेमाल किया था। लेकिन फिलहाल मैं कोशिश कर रहा हूं + –
हम्म ले लो .... बिंदु मिला .. अब प्रयोग कर रहा है :) –
मुझे PUT() के लिए टाइमआउट कैसे निर्दिष्ट करना चाहिए? –