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

Ilias Tsagklis

Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button