concurrent
Blocking Queue example of limited connection pool
private BlockingQueue<Connection> pool = new ArrayBlockingQueue<Connection>(10);
private AtomicInteger connCount = new AtomicInteger();
 
public Connection getConnection() {
    Connection conn = pool.poll(5, TimeUnit.SECONDS);
    if (conn == null) {
  synchronized (connCount) {
if (connCount.get() < 10) {
    conn = getNewConnection();
    pool.offer(conn);
    connCount.incrementAndGet();
}
  }
  if (conn == null) {
throw new ConnUnavailException();
  } else {
return conn;
  }
    }
}
Related Article:
Reference: Java Concurrency Part 5 – Blocking Queues from our JCG partners at the Carfey Software blog
 



