Java Collection Tutorial - Java ArrayBlockingQueue(int capacity, boolean fair) Constructor








Syntax

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

public ArrayBlockingQueue(int capacity,     boolean fair)

Example

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

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

    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();
        System.out.println(q.peek());
        if (x == null) {
          break;
        }
        System.out.println(x);
      }
    } catch (InterruptedException e) {
    }
  }
}

The code above generates the following result.