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: 142
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