Java ArrayBlockingQueue
Java's ArrayBlockingQueue
is a class that implements the BlockingQueue
interface, which is part of the java.util.concurrent
package. It represents a thread-safe, bounded blocking queue that stores elements in an array. The capacity of the queue is specified when the ArrayBlockingQueue
object is created, and once the queue is full, any attempt to insert an element will block until there is space available in the queue.
Here are some key features of ArrayBlockingQueue
:
- It is a bounded queue with a fixed capacity.
- It is thread-safe and can be used in a concurrent environment.
- It is a blocking queue, which means that when the queue is full, any attempt to insert an element will block until space is available, and when the queue is empty, any attempt to remove an element will block until an element is available.
- It implements the
BlockingQueue
interface, which provides methods likeput()
andtake()
to insert and remove elements from the queue. - It is implemented as an array of objects with a fixed capacity, and the elements are stored in a circular buffer.
Here is an example of how to create an ArrayBlockingQueue
:
import java.util.concurrent.ArrayBlockingQueue; public class Example { public static void main(String[] args) { ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<>(10); } }
In this example, we create an ArrayBlockingQueue
object called queue
with a capacity of 10. We can then use the put()
method to add elements to the queue, and the take()
method to remove elements from the queue. If the queue is full, any attempt to add an element will block until space is available, and if the queue is empty, any attempt to remove an element will block until an element is available.