The Producer-Consumer problem in Java involves coordinating threads to share a common resource. Producers generate data, while consumers process it. Java’s `BlockingQueue` provides a simple solution by handling thread synchronization.
Here’s an example using `ArrayBlockingQueue`:
BlockingQueue queue = new ArrayBlockingQueue<>(5);
Runnable producer = () -> {
try {
queue.put(1);
} catch (InterruptedException e) { }
};
Runnable consumer = () -> {
try {
queue.take();
} catch (InterruptedException e) { }
};
new Thread(producer).start();
new Thread(consumer).start();
This example efficiently handles thread synchronization. The `BlockingQueue` ensures safe data sharing between producers and consumers. Using built-in synchronization utilities like these can simplify thread communication and resource management.
Leave a Reply