转载自http://blog.csdn.net/vking_wang/article/details/9619137
个人的理解线程池主要有三种:
CachedThreadPool、
FixedThreadPool、
SingleThreadExecutor 。
第一种是有缓存区的线程池,初始化的线程会被放在缓存区,这个线程会被得到重复的利用,一般是这个线程并发的进行(类似于CPU并发的处理一样),如果池中没有线程,则会重新创建一个线程放入池中;
第二种是固定线程大小的线程池,当使用的线程小于或等于线程池指定的数目时,线程池中的线程会切换并发进行;当使用的线程大于线程池指定的数目时,线程池中的线程会被复用;
第三种是单一线程,线程池中只有一个线程用来执行,线程的任务结束后,才会被复用到另一个任务。