How to tell if there is an available thread in a thread pool in java

Posted by Gormcito on Stack Overflow See other posts from Stack Overflow or by Gormcito
Published on 2010-04-17T09:59:20Z Indexed on 2010/04/17 10:03 UTC
Read the original article Hit count: 121

Filed under:
|
|

I am trying to proccess a queue of tasks from a database table as fast as possible while also limiting the number of threads to process the tasks.
I am using a fixed sized thread pool with Executors.newFixedThreadPool(N);

I want to know if there is a way of knowing if the thread pool is full, by that I mean are there currently 50 threads running, if so then I'll wait for a thread to be available before starting a new one instead of sleeping the main thread.

Code of what I would like to do:

ExecutorService executor = Executors.newFixedThreadPool(N);
ResultSet results;

while( true ) {
    results = getWaitingTasksStmt.executeQuery();

    while( results.next() && executor.notFull() ) {
        executor.submit( new thread( new runnableInheritedClass(results) ) );
    }
}

© Stack Overflow or respective owner

Related posts about java

Related posts about multithreading