# कंकरेंट कलेक्शन — एडवांस्ड जावा

Source: https://www.geekswithgeeks.com/hi/advanced-java/adv-concurrent-collections

> ConcurrentHashMap से थ्रेड के बीच डेटा सुरक्षित साझा करें, प्रोड्यूसर/कंज़्यूमर के लिए BlockingQueue, और ज़्यादा पढ़ी जाने वाली लिस्ट हेतु CopyOnWriteArrayList।

## सही चुनें

साझा मैप के लिए `ConcurrentHashMap`; प्रोड्यूसर/कंज़्यूमर के लिए `BlockingQueue`; ज़्यादा पढ़े जाने वाली लिस्ट के लिए `CopyOnWriteArrayList`।

## BlockingQueue से producer/consumer

क्यू भरी होने पर `put()` प्रोड्यूसर को रोकता है, खाली होने पर `take()` कंज़्यूमर को रोकता है — मैनुअल `wait`/`notify` की ज़रूरत नहीं।

```java
BlockingQueue<Job> queue = new LinkedBlockingQueue<>(100);

// producer
queue.put(job);

// consumer
Job job = queue.take();
```
