पाठ 10 / 38
कंकरेंट कलेक्शन
ConcurrentHashMap से थ्रेड के बीच डेटा सुरक्षित साझा करें, प्रोड्यूसर/कंज़्यूमर के लिए BlockingQueue, और ज़्यादा पढ़ी जाने वाली लिस्ट हेतु CopyOnWriteArrayList।
सही चुनें
साझा मैप के लिए ConcurrentHashMap; प्रोड्यूसर/कंज़्यूमर के लिए BlockingQueue; ज़्यादा पढ़े जाने वाली लिस्ट के लिए CopyOnWriteArrayList।
BlockingQueue से producer/consumer
क्यू भरी होने पर put() प्रोड्यूसर को रोकता है, खाली होने पर take() कंज़्यूमर को रोकता है — मैनुअल wait/notify की ज़रूरत नहीं।
BlockingQueue<Job> queue = new LinkedBlockingQueue<>(100);
// producer
queue.put(job);
// consumer
Job job = queue.take();