In article <kcq2ap$m4o$1@dont-email.me>,
markspace <markspace@nospam.nospam> wrote:
On 1/11/2013 1:56 PM, Roedy Green wrote:
I have 25 threads that start at once. I need to wait until the last
one completes. Is there a better way to handle that than using a
ThreadPoolExecutor which seems overkill.
The Executors class has convenience methods to make thread pools easier
to use.
ExecutorService es = Executors.newFixedThreadPool( 25 );
// submit jobs here
es.shutdown();
The shutdown() will wait for all jobs to finish. I don't think you can
get easier than that. It's two lines of code!
The Executor classes are horribly buggy. Pool size adjustment, idle
timeouts, and shutdown sequences do NOT work. Some of the features are
impossible to implement efficiently so Sun instead chose to implement
them incorrectly.
For an Executor, it would be more correct to iterate through all the
Future or Callable objects returned and ask for their result.