ThreadExecutorPool线程池提供了自己本身的方法来实例化线程,这里不多做赘述。

不过我们在可以的情况下应该多去用Excutors中 的三个静态方法:

1、Executors.newSingleThreadExecutor();
2、Executors.newCachedThreadPool();
3、Executors.newFixedThreadPool(1000);

第一种方式是创建一个只有一个线程的线程池,它的corePoolSize和maximumPoolSize都设置为1,使用的是LinkedBlockingQueue;

第二种方式创建的线程池将corePoolSize设置为0,将maximumPoolSize设置为Interger.MAZ_VALUE,使用的是SynchronousQueue;

第三种方式创建的线程池他的corePoolSize与MaximumPoolSize是相等的并且统一由用户自己设置,使用的是LinkedBlockingQueue;