Java Collection Tutorial - Java ArrayBlockingQueue(int capacity) Constructor








Syntax

ArrayBlockingQueue(int capacity) constructor from ArrayBlockingQueue has the following syntax.

public ArrayBlockingQueue(int capacity)

Example

In the following code shows how to use ArrayBlockingQueue.ArrayBlockingQueue(int capacity) constructor.

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
/*from ww w .  ja  v a 2 s  .  co m*/
public class Main {
  public static void main(String[] argv) throws Exception {
    int capacity = 10;
    BlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(capacity);

    int numWorkers = 2;
    Worker[] workers = new Worker[numWorkers];
    for (int i = 0; i < workers.length; i++) {
      workers[i] = new Worker(queue);
      workers[i].start();
    }

    for (int i = 0; i < 100; i++) {
      queue.put(i);
    }
  }
}

class Worker extends Thread {
  BlockingQueue<Integer> q;

  Worker(BlockingQueue<Integer> q) {
    this.q = q;
  }

  public void run() {
    try {
      while (true) {
        Integer x = q.take();
        if (x == null) {
          break;
        }
        System.out.println(x);
      }
    } catch (InterruptedException e) {
    }
  }
}

The code above generates the following result.