There are many types ;)
There is, for instance, ExecutorService. This is the "basic" implementation which allows to submit tasks etc. You will probably want to use Executors to obtain a new one, since it has static factory methods for the most common scenarios.
Since Java 7 you also have ForkJoinPool.
Also have a look at FutureTask, since this is a very convenient class to build individual threads.