1.SingleThread Executor:只有一个线程的线程池,因此所有提交的任务是顺序的,代码:
Executors.newSingleThreadExecutor()
2.Cached Thread Pool
线程池里有很多线程需要同时执行,旧的可用线程将被新的任务重新执行,如果线程超过60秒内没执行,那么将被终止并从线程池中删除,代码:
Executors.newCachedTreadPool()
3.Fixed Thread Pool
拥有固定线程数的线程池,如果没有任务执行,那么线程会一直等待,代码:
Executors.newFixedThreadPool(4)
在构造函数中的参数4是线程池的大小,一般设置与cpu的数量保持一致,获取cpu的数量:
int cpuNums = Runtime.getRuntime().availableProcessors();
4.Scheduled Thread Pool
用来调度即将执行任务的线程池,代码:
Executors.newSchduledThreadPool()