You can read more about ThreadPoolExecutors here:
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
However, it might be a good idea to look at the ForkJoinTask API:
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinTask.html